
我一开始想着是一级:去除长度不一集,二级:双指针逐个两端对比
]]>目前想到两种思路:
语言是 C#,大家有啥建议吗?
]]>只从技术的角度看,FAANG 几大巨头搞算法的人才也不少,LLM 水平目前还是绝对领先,但是似乎也研究和抄袭过 TT 的算法,看起来还是没有 TikTok 能打。
比较好奇,tiktok 的算法到底有多厉害?整的 FAANG 就是搞不定? TT 的算法和 LLM 的算法,难度还要更大吗?
]]>最近刷到很多小伙伴在讨论动态规划和二分优化,这让我想起自己当初被“最长递增子序列”这题反复劝退的日子😵💫。这次,我整理了自己理解这道题的全过程,也录成了视频,希望能帮到和我当初一样迷茫的你。
在视频里,我分享了:
这不是最短的视频,但是我用心讲解的一次“过来人经验”。如果你也曾为这题头秃,或刚好准备学习 DP ,欢迎来看、留言、交流。
📌 你是怎么理解 LIS 的?有用过它解决过什么实际问题吗? 📌 欢迎在评论区留下你的“LIS 初体验”or“踩坑瞬间”!
点赞、投币、收藏是对我最大的支持 🙇♂️ 如果你觉得讲得还行,也欢迎转发给正在学习的朋友~
如需改为更轻松/中二风/标题党风/学术风等风格,我也可以帮你调整。需要吗?
]]>这个中心点也希望是由中心点发出符合半径长度的射线,所重合点数最多的情况,比如一个金字塔形的边框组成的区域被局部覆盖,那么中心点应当是塔尖,而非金字塔中心。
目前数据是以文本形式存储的。
该如何实现这样的计算?算法逻辑和需要用到的库和工具有哪些?
向量数据库有助于这种数据处理吗?我没接触过向量数据库。
]]>思路一 传统分红包办法,1 到 n-1 人领随机生成 range ( 1 ,0.3*m )的红包,最后一个人拿到剩余,但是这样最后一个人可能会超出上下限
思路二 下限当作保底,先每个人分 1 元保底,剩下奖金池是 m-n ,1 到 n-1 人领取随机生成 range ( 0 ,0.3*m-1 )的红包,最后一个人拿到剩余,这样保证了下限,但是上限还是会超,如果前面 n-1 个人没分完总奖金的( 1-30%)=70%,剩下一个人就会超过上限 30%
到这里基本时间就到了,感觉凉凉,复盘时候感觉无论怎么随机分,都没法保证刚好分完
思路三是搜索到的一种解法,先计算平均值 avg ,每个人两两一对,领取 avg+-random 的红包,如果人数是单数,则返回平均值。这样能保证分完,不过额真的随机么。
]]>要求:
]]>d 和 m 可以自定义配置
]]>用 3 个 for 循环可以实现最基本的矩阵乘法, 在我用 simd, blocking, 并行计算这些方法之后, 速度比 naive 版本的快了很多, 但还是会比 openblas 慢不少. 接下来该怎么做有点没头绪了. 我想知道有没有办法能进一步提升? 谢谢
]]>我之前在知乎上问这个问题有人说我松鼠病,看这种东西没用吗?
]]>如果有往期的录制视频也可,费用另算。比较适合在校老师或在职工作的 OP 。
感兴趣的可以加 v Laplan_d
]]>感兴趣的大佬可以加 v Laplan_d
]]>详细问过需求,简化成如下的需求点:
我自己先假设最普通的情况,一个教室最大 30 个人。有若干从 1-30 人的课。用最无脑的方法,就是人数 30 的课放到 30 人的教室排满。然后排 29 人数的配 1 个人的课,然后 28 的配 2 人,27 、26...依次。
然后不同的场次处理后,发现等到课的人数是 17 、18 的时候,可能自己独立成一个教室考试有点浪费。或者一堆 1 、2 、3 的挤在一个教室加起来不到七八个人。
发现这种无脑从大到小的编排方式不行,所以觉得可能要使用某种算法来解决这个问题了。但是奈何学艺不精,没有刷过多少算法题,不清楚有哪些算法可以使用在这个问题上的。希望大家能说下算法的名称或者搜索学习算法方向。如果可以的话或者有什么处理思路的话,能简要说说就更好了。
]]>if __name__ == '__main__': #每路车剩下的空位 line_left_Num = { '5 路':6, '6 路':11, '9 路': 4, '10 路': 9, '11 路': 18, '12 路': 21, '17 路': 36, '18 路': 41, '21 路': 6, '60 路': 20 } # 每个站点还需要分配的学生人数 site_stu_num = { '江山里澜湾小区':21, '赞贤路小学、中航云府(赣康路)':30, '登峰大道中(城市家园)':7, '中海滨江壹号':13, '中海国际东郡 B 区(南康路)':30, '登峰大道南(中航公元)':64 } # 会经过该站点的线路 site_line = { '江山里澜湾小区': ['11 路','17 路'], '赞贤路小学、中航云府(赣康路)': ['5 路','9 路','12 路'], '登峰大道中(城市家园)': ['10 路','18 路'], '中海滨江壹号': ['6 路','21 路'], '中海国际东郡 B 区(南康路)': ['17 路','60 路'], '登峰大道南(中航公元)': ['11 路','17 路','18 路'] } 怎么设计一个算法给在不超载的情况下尽可能把学生都安排上,得到每个站点的每条线路分配人数,比如江山里澜湾小区,11 路分配 6 人,17 路分配 15 人,
]]>A,B B,C A,D E,F G,Z X,A X,Y A,E E,R C,E E,F E,B
现在需求是:输入起始节点和最终节点,可以返回一下连通性结果,如果是通的,并输出连通的路径(无需最短,如果有多条就输出多条)。根据网络搜索发现大致上应该是图的广度优先遍历算法,但在网上找了很多 Python 代码示例,都是输入一个起始节点,输出可能的最终节点,使用的还是现成包,改不动。
例外: A->E->C->E->C(这种环一下子的就不必了吧。。)
希望大神能给个 Demo ,指点一二。
]]>例如: 输入: candidates = [10, 20, 20, 30, 40], [min, max] = [30, 50] 输出: [[10, 20], [10, 30], [10, 40], [10, 20, 20], [20, 20], [20, 30], [30], [40]]
例如: 输入: candidates = [10, 20, 20, 30], target = 45, target1 = 10 输出: [[20, 30], [10, 20, 20]]
以上都是我这边现实业务需要计算的场景, 我根据 leetcode 上的组合总和 II改了改算是勉强将第一个算法实现了
第二个算法实在是不会搞了
]]>背景:
我们麻将群准备举办一个麻将比赛,总共有 10 个队伍参赛,假设这 10 个队伍分别为 A,B,C,D,E,F,G,H,I,J ;
要求:
1 ,总共安排 30 场对战,每天两场,总共 15 天,每个队伍出战 12 次;每个队伍遇到其他每个队伍的次数相同,即任意两个队伍之间的相遇 4 次。
2 ,每天两场比赛同时进行,8 个队伍参赛,两个队伍轮空。每个队伍每天只能参加一场。
问题:如何安排每天的赛程?
我个人上班摸鱼的时候想了一些办法,虽然找到满足要求的结果了,但是觉得并不是最优解,所以来虚心请教下。
已知所有相遇可能性为 C10,2 = 45 ,每场对战的不同相遇数为 C4,2 = 6;
我使用的方法是,最后的结果使用一个二维数组来存放,每个元素代表每天的两场对战。例如:[[ABCD,EFGH],[ABCD,EFGH]...]。
每次挑选两个相遇来组合成一次对战。要求这两次相遇没有同一个队伍,并且如果本场对战是当天的第二场,还要先排除第一场已经参赛的队伍。先将总共 30*6 = 180 个相遇放到待选池中,每次从池中选择一个相遇时,优先选择最终结果中已选择的相遇次数最少的相遇来组成一场对战。
]]>然后我用 js 写了个实现,最后还是使用不同的待选池序列尝试了一千多万次才找出满足条件的结果。想问问有没有更好的办法
输入数组,排序后需符合以下规律 a0<a1>a2<a3>a4<...>an
]]>如果凑不到这个金额,比如只有 1 元和 0.5 元,金额是 1.1 元,则取 1.5 来凑
]]>出租屋最近换了密码锁,6 位密码。实际操作中,在密码前后输入多位其他数字,也能验证成功。既 prefix + password + suffix 的输入,也能解锁。
那么问题来了,6 位密码最多输入多少次能破解? 假设密码锁的判断方式是最近输入的 12 位字符,既 length(prefix + password + suffix) = 12
没有思路,请教诸君。
]]>给定多种钻针及数量,求使用最少盒子的排放组合?
eg: | 钻针 | 数量 | | ----------- | ----------- | | 1 |5 | | 2 |8 | | 3 |20 | | 5 |44 | | 6 |12 | | 7 |120 | | 8 |10 |
输出 [ [1,1,1,1,1,2,2,2...], [5,5,5,5,5,...] ]
]]>hashmap 和 heap 结合起来实现了一种数据结构, 它具有 O(1) 的随机访问和极值访问性能, O(logN) 的插入/更新/删除性能. 用途非常广泛, 可以作为 TTL 缓存 / 时间堆 / 有序集合 / 撮合成交系统核心 使用. 前人是不是已经发明过了, 可有正式名称?
]]>确认算法后,是否可以使用 java 来设计下,要求高性能,感激~
]]>