LeetCode way to explore https:https://cdn.v2ex.com/navatar/537d/9b6c/1040_normal.png?m=1644497964 https:https://cdn.v2ex.com/navatar/537d/9b6c/1040_large.png?m=1644497964 2024-10-21T03:37:59Z Copyright © 2010-2018, V2EX 二分查找 mid 什么时候要加 1 tag:www.v2ex.com,2024-10-21:/t/1082131 2024-10-21T03:37:59Z 2024-10-21T03:37:59Z albert0yyyy member/albert0yyyy
let mid = Math.floor(l + (r - l) / 2)

有时候如果不+1 就死循环了

let mid = Math.floor(l + (r - l) / 2 + 1)

求教,什么时候需要+1 ,什么时候不需要加 1 ]]>
大家知道哔站或者 Youtube 上有木有出 leetcode 刷题讲解视频的博主? tag:www.v2ex.com,2024-08-22:/t/1067061 2024-08-22T09:27:25Z 2024-10-03T07:47:44Z RYS member/RYS leetcode 到达 1000 题了🎉 tag:www.v2ex.com,2024-05-03:/t/1037553 2024-05-03T08:23:50Z 2024-05-04T13:35:47Z stevenshuang member/stevenshuang 坚持在做 leetcode 的每日一题(不参加比赛),目前坚持了 500 多天,题目到达了 1000🎉。 掌握了不少小技巧,也强化了自己的思考能力。

我也看过之前的刷题的帖子,t/910785 ,我也是觉得这种如果没有额外的项目去做,练练手保持一下感觉也是不错的。 另外说一下,访问 leetcode.com 隔一段时间刷新就会跳到 leetcode.cn ,很烦。

附上自己的链接🐶 https://leetcode.com/u/sudo-rm-maker/

]]> 为什么打开 leetcode 中文网要验证手机号啊,能不验证吗 tag:www.v2ex.com,2023-12-18:/t/1001497 2023-12-18T15:47:11Z 2023-12-20T21:06:36Z LFL976 member/LFL976 如图 leetcode.cn

]]>
为什么要刷算法? tag:www.v2ex.com,2023-11-14:/t/991733 2023-11-14T02:53:26Z 2023-12-09T14:57:13Z ThinkStu member/ThinkStu 无论是秋招春招还是日常找工作,都要考算法。

每次打开 leetcode ,面对近两千道题目,顿时感觉意义全无。我们为什么需要刷算法呢,而且为什么要去刷那些 difficult 难度的题?

]]>
靓仔们,刷的第一个道 leetcode 题是什么哇 tag:www.v2ex.com,2023-11-09:/t/990324 2023-11-09T08:52:34Z 2023-11-09T15:25:26Z xoxo419 member/xoxo419 从早上的搓搓小手,冒泡、插入,选择,归并,快速。。到下午的挠头发,我感觉刷不下去了。。。912-排序数组 毁灭吧~

912-排序数组

]]>
Leecode 组队刷题 tag:www.v2ex.com,2023-10-25:/t/985244 2023-10-25T05:24:00Z 2024-01-06T10:00:57Z axuplus member/axuplus 不打比赛 就是搞个群专注刷题 平时吹吹水聊聊别的

]]>
2018 年之前大家怎么准备的面试? tag:www.v2ex.com,2023-10-21:/t/984024 2023-10-21T05:13:02Z 2023-10-21T05:12:02Z pwonv member/pwonv leetcode 在 2018 年才进入中国,在这之前国内的公司是直接从 leetcode 英文版上挑面试题吗?

]]>
142. 环形链表 II 我这么写为什么有个 case 无法通过 tag:www.v2ex.com,2023-10-08:/t/979777 2023-10-08T03:16:49Z 2023-10-08T03:51:36Z sugarkeek member/sugarkeek 感觉也没啥区别呀

我的代码:

public class Solution { public ListNode detectCycle(ListNode head) { if(head == null || head.next == null) return null; ListNode fast = head; ListNode slow = head; while(fast != slow){ if(fast == null || fast.next == null){ return null; } slow = slow.next; fast = fast.next.next; } fast = head; while( fast != slow){ fast = fast.next; slow = slow.next; } return fast; } } 

无法通过的 case:

输入 [3,2,0,-4] 1 输出 tail connects to node index 0 预期结果 tail connects to node index 1 

可以通过的代码:

public class Solution { public ListNode detectCycle(ListNode head) { if(head == null || head.next == null) return null; ListNode fast = head; ListNode slow = head; while(true){ if(fast == null || fast.next == null){ return null; } slow = slow.next; fast = fast.next.next; if(fast == slow) break; } fast = head; while( fast != slow){ fast = fast.next; slow = slow.next; } return fast; } } 
]]>
各位都是怎么刷题的 tag:www.v2ex.com,2023-07-03:/t/953544 2023-07-03T01:31:13Z 2023-07-03T04:38:58Z cMoon member/cMoon 我现在是 idea+leetcode 插件,但是这样好像和直接在官网刷没多大区别

有没有什么方案可以有代码提示+补全+调试方便的

]]>
leetcode 第 402 题,移除 K 位数字 的疑问 tag:www.v2ex.com,2023-05-30:/t/944226 2023-05-30T07:57:01Z 2023-05-30T10:15:43Z yujianwjj member/yujianwjj 这道题目的解法是 每次删除一个字符,使剩下的字符最小。然后执行 k 次。

这道题目为什么贪心算法是最优解?怎么证明。

]]>
你力扣做几题了?做题数还能衡量水平吗?我做了很多题还是很菜 tag:www.v2ex.com,2023-02-07:/t/913887 2023-02-07T04:32:07Z 2023-02-07T12:44:08Z ccagml member/ccagml leetcode-cn 年费会员 20%off tag:www.v2ex.com,2022-10-20:/t/888434 2022-10-20T06:53:23Z 2022-10-20T06:53:23Z noyidoit member/noyidoit FYI

]]>
Leetcode 刷题记录 tag:www.v2ex.com,2022-07-29:/t/869554 2022-07-29T13:37:42Z 2022-08-08T20:16:44Z Knuth member/Knuth LeetCode 有史以来最简单的题目 tag:www.v2ex.com,2022-07-05:/t/864323 2022-07-05T20:07:25Z 2022-07-06T13:00:37Z alexcding member/alexcding https://leetcode.com/problems/add-two-integers/

17 种解法:
https://leetcode.com/problems/add-two-integers/discuss/1968134/17-different-ways-to-solve-this-problem ]]>
一直很好奇 leetcode 是怎么判断随机算法的正误的 tag:www.v2ex.com,2022-06-26:/t/862272 2022-06-26T05:45:17Z 2022-06-26T12:16:43Z eastphoton member/eastphoton 比如今天的每日一题: https://leetcode.cn/problems/random-pick-with-blacklist/, 还有这些: https://leetcode.cn/tag/randomized/problemset/

毕竟随机结果没法直接对比标准答案,感觉要判断正误就挺麻烦,但 leetcode 可以测出来正确性。

有时候写出来某个细节差个+1 -1 ,那概率分布也差不太多吧,它也能测出来有错误不给 AC 。 感觉就挺神奇的。

没有搜到有对这个的讨论。。

]]>
你们会在意执行用时和内存消耗吗? tag:www.v2ex.com,2022-03-06:/t/838310 2022-03-06T02:18:13Z 2022-03-10T16:35:00Z jaggle member/jaggle leetcode 502badgateway 了? tag:www.v2ex.com,2022-02-20:/t/835154 2022-02-20T02:38:02Z 2022-02-20T02:43:24Z hehezhang member/hehezhang 开心,参加 Weekly Contest 270 不到 1 小时解决了 3 题, Q3 最后几十秒提交一次性通过 tag:www.v2ex.com,2021-12-05:/t/820137 2021-12-05T04:38:05Z 2021-12-13T04:49:11Z jiezhi member/jiezhi
今天 11 点多起床开始做本周的竞赛,今天也是状态不错,Q1 、Q2 和 Q3 都是一次性过(代码都没回改过)。做 Q3 时只剩二十多分钟了,看了题目觉得能做又觉得比较麻烦预计做不完了,一度想下午再做。但一想还是拼一把,结果最后一分钟一次性跑过提供的 2 个测试案例,提交了也是一次性过。

真是开心到飞起,明年开始准备集中刷 Hard 类型的了,向大佬们靠齐。 ]]>
刷题,组队 tag:www.v2ex.com,2021-08-24:/t/797778 2021-08-24T11:04:44Z 2021-08-24T11:03:44Z shawnli0711 member/shawnli0711
目前刷了 30 来题吧,觉得蛮有意思。短期目标是刷够 100 到,主要以剑指 offer 为主要阵营 ]]>
早安刷题 tag:www.v2ex.com,2021-08-24:/t/797619 2021-08-24T01:47:55Z 2021-08-24T01:46:55Z shawnli0711 member/shawnli0711 https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/ ]]> leetcode 33 解法求解释 tag:www.v2ex.com,2021-07-01:/t/787031 2021-07-01T17:35:16Z 2021-07-01T16:34:16Z xiaoming1992 member/xiaoming1992 题目: 33. Search in Rotated Sorted Array 一个很清晰简洁的解法: Clever idea making it simple

int search(vector<int>& nums, int target) { int lo = 0, hi = nums.size(); while (lo < hi) { int mid = (lo + hi) / 2; double num = (nums[mid] < nums[0]) == (target < nums[0]) ? nums[mid] : target < nums[0] ? -INFINITY : INFINITY; if (num < target) lo = mid + 1; else if (num > target) // 这儿为什么不能 -1 ? hi = mid; else return mid; } return -1; } 

这个解法省了我几万个脑细胞, lo = mid + 1 很好理解, 但是 hi = mid - 1 为什么出错, 我想破脑袋都没想明白...

]]>
大家刷题,是去中文的 leetcode-cn.com,还是去 leetcode.com?貌似还有一个山寨的 lintcode tag:www.v2ex.com,2021-06-15:/t/783389 2021-06-15T01:06:25Z 2021-07-22T19:38:28Z yazoox member/yazoox 如题

leetcode-cn 的题目内容以及顺序和 leetcode 的是完全一样的么?

]]>
刷同一类题型真是很不错的方法 tag:www.v2ex.com,2021-04-18:/t/771431 2021-04-18T05:29:44Z 2021-04-17T05:28:44Z e583409 member/e583409 leetcode 1758 tag:www.v2ex.com,2021-04-08:/t/769022 2021-04-08T04:35:41Z 2021-04-08T04:53:15Z yujianwjj member/yujianwjj https://leetcode.com/problems/minimum-changes-to-make-alternating-binary-string/

题目比较简单,只有 010101... 或者 101010... 两个方案 最开始我的解法是:

func minOperations(s string) int { count1 := 0 // 010101... for i := 0; i < len(s); i++ { if int(s[i] - '0') != i % 2 { count1++ } } count2 := 0 // 10101010... for i := 0; i < len(s); i++ { if int(s[i] - '0') != (i+1) % 2 { count2++ } } return min(count1, count2) } 

后来发现更简单一点的

func minOperations(s string) int { count1 := 0 // 010101... for i := 0; i < len(s); i++ { if int(s[i] - '0') != i % 2 { count1++ } } return min(count1, len(s)-count1) } 

我的疑问是如何用数学证明这两种方案加起来刚好是 s 的长度。

]]>
3 个月 了 刷了 51 道题 平均每道题 3 种左右的方法 tag:www.v2ex.com,2021-03-27:/t/765686 2021-03-27T07:41:54Z 2021-05-07T19:04:12Z e583409 member/e583409 https://github.com/xrfinbupt/leetcode_java

今天看到的:刷题已经和爬山、溜娃一样,成为湾区三俗,基本几个湾区的工程师碰在一起,讨论的话题总跳不出这个圈 ]]>
区间合并 断断续续想了 2 天 执行时间竟然 100% tag:www.v2ex.com,2021-02-20:/t/754714 2021-02-20T11:42:59Z 2021-02-19T11:41:59Z e583409 member/e583409 记录一下 https://leetcode-cn.com/problems/merge-intervals/solution/hen-cuo-de-fang-fa-dan-shi-zhi-xing-shi-7pcd2/ ]]> 两次提交 代码没有变动 竟然时间还不一样 tag:www.v2ex.com,2021-02-17:/t/753639 2021-02-17T01:33:46Z 2021-02-16T08:34:53Z e583409 member/e583409 后台可能服务器负载不一样 影响了结果?

]]>
一起来刷题 tag:www.v2ex.com,2021-02-12:/t/753113 2021-02-12T14:57:46Z 2021-02-11T14:56:46Z e583409 member/e583409 https://github.com/xrfinbupt/leetcode_java ]]> 30 天 LeetCode 从 100 题刷到 200 题,再次发帖留念 tag:www.v2ex.com,2021-01-16:/t/745501 2021-01-16T09:11:45Z 2021-01-16T17:09:28Z zhongrs232 member/zhongrs232 接上次完成 100 题的帖子(/t/736180),好巧,刚好过了 30 天,1 个月刷了 100 题,不知道和 V 站各位大佬比算如何。

这次刷的基本是中等题,按题目列表顺序刷的,还是以刷够量为主。想法也很简单,量变才能有质变,先攒够经验再说,这样后面遇到类似的题会有点印象,看题解不会太吃力。另外写刷题总结时也有足够的样本。功利心肯定也是有的,为了以后能在简历上贴个 LeetCode 主页加加分。

后续打算换个刷题思路,除了每日打卡和强化同类题训练,不再刷新题了。一是以前刷过的题肯定忘得差不多了,需要回头再复习一下,二是打算写写刷题总结,总结一下典型题的套路,背一些常用的代码,争取再遇到同类题时都能做出来。三是打算重新学一遍数据结构和算法,和刷题总结融合在一起。

目前仍然感觉自己是个菜鸟,毕竟困难题基本做不出,中等题差不多一半以上还要参考评论或题才能写得出。

下一个目标,明年 3 月份刷够 300 题,总结出一份刷题总结,包含常见的数据结构和算法,典型题分类及解题思路,题目列表及标签。

这一两天还有个打算,想整理一份跳槽后端开发的知识清单出来,目前身处传统行业,感觉没什么前途,明年想转 C++或 Go 的后端开发,到时候 V 站发出来请各位朋友把把关。

sD0Omj.png sDcK3t.png

]]>
被今天的 LeetCode 打卡题搞吐了,思路和代码都和题解基本一样,但就是一直超时不过 tag:www.v2ex.com,2021-01-11:/t/743974 2021-01-11T12:13:47Z 2021-03-09T08:01:44Z zhongrs232 member/zhongrs232 s8q37j.png

]]>
LeetCode 中使用 StringBuilder 连接字符串为什么会比用+号连接快? tag:www.v2ex.com,2021-01-10:/t/743492 2021-01-10T03:05:18Z 2021-01-10T07:00:38Z kuretru member/kuretru 今日 LeetCode 的每日一题,代码很简单,官方的题解如下:

class Solution { public List<String> summaryRanges(int[] nums) { List<String> ret = new ArrayList<String>(); int i = 0; int n = nums.length; while (i < n) { int low = i; i++; while (i < n && nums[i] == nums[i - 1] + 1) { i++; } int high = i - 1; StringBuffer temp = new StringBuffer(Integer.toString(nums[low])); if (low < high) { temp.append("->"); temp.append(Integer.toString(nums[high])); } ret.add(temp.toString()); } return ret; } } 

可以看到官方使用 StringBuffer 来连接字符串,在不需要考虑线程安全的环境,毫无疑问可以使用 StringBuilder 来代替,但是问题在于,为什么使用+号来连接的效果会比 StringBuilder 及 StringBuffer 差?

String temp = Integer.toString(nums[low]); if (low < high) { temp += "->" + Integer.toString(nums[high]); } ret.add(temp); 

两者的差别为:
StringBuilder/StringBuffer:执行用时:0 ms, 在所有 Java 提交中击败了 100.00%的用户
+号连接:执行用时:8 ms, 在所有 Java 提交中击败了 70.02%的用户
同样的代码在本地各循环 1000 万次的结果为
JDK 1.8(与 LeetCode 相同):7708ms vs 7287ms
JDK 11:7320ms vs 4511ms

]]>
刷题很痛苦 需要自己找方法刺激过程 别放弃 tag:www.v2ex.com,2021-01-10:/t/743485 2021-01-10T02:35:18Z 2021-01-10T09:04:55Z e583409 member/e583409 leetcode 有排名了,每天起来看自己排名上涨也是一种乐趣 tag:www.v2ex.com,2021-01-08:/t/742786 2021-01-08T01:40:01Z 2021-01-08T04:11:37Z zhongrs232 member/zhongrs232 昨天才发现的全站排名不再是>100000了,然后昨天通过了几题,今天发现又涨了点,不错不错,刷题这种无聊的事情,难得有点正反馈,后面以这个排名为目标也可以激励一下自己,目前数据如下: 图像 1.png

]]>
认认真真地刷题 提高代码能力和思维能力 tag:www.v2ex.com,2021-01-06:/t/742071 2021-01-06T02:04:56Z 2021-01-06T02:18:21Z e583409 member/e583409 开源地址: https://github.com/xrfinbupt/leetcode_java
目标:提升代码能力 思维能力

争取每天刷一下 每日磨刀 用尽可能多的方法刷 ]]>
刷了 10 题 leetcode,感觉身体被掏空 tag:www.v2ex.com,2020-12-30:/t/740418 2020-12-30T12:44:10Z 2020-12-30T17:32:14Z zhongrs232 member/zhongrs232 除了今日打卡的简单题,另外都是中等题,现在感觉好累,身体被掏空,后面几题已经变成面向测试用例编程了,只求提交通过,优化什么的完全没心思,深感人一天的精力是有限的,真不是意志力可以控制的了,这几天连续高强度刷题,脑子都快不够用了。另外,leetcode 最近 7 天有 4 天的打卡题是困难题,也够搞的。

]]>
大家觉得 backtracking 难吗? tag:www.v2ex.com,2020-12-25:/t/738841 2020-12-25T03:29:11Z 2020-12-25T05:06:06Z polymer member/polymer 对那些“列举所有可能”的问题,非常头疼,recursion 写得老是有问题,怎么设计辅助函数都需要想很久。请问大家怎么学 backtracking ? 有没有推荐的学习资料或者题目详细讲解?

]]>
国内本科学生,想问问大佬们 Leetcode 推荐美国站还是国内站 tag:www.v2ex.com,2020-12-23:/t/738366 2020-12-23T10:54:35Z 2020-12-23T13:42:02Z BarryPan member/BarryPan 目前大三,想刷算法题,英语比较普通(六级 500 左右),平常会看 StackOverflow 、Hackernews 和一些英语文章,英语博客,英语频道,英语新闻。有意锻炼英语能力。最近 Leetcode 美国站 Premium 打折,想问问我这种情况入坑应该选美国站还是国内站更好呢? PS.有查过相关帖子说美国站的讨论贴和题目相对多,不知道现在的情况如何了。

]]>
华为 OD 机试题:给定两个数 0<S, N<100000, S 为数列总和, N 为数列长度,求连续正整数列 tag:www.v2ex.com,2020-12-14:/t/735146 2020-12-14T02:28:44Z 2020-12-16T22:08:43Z 6167 member/6167 输入 525 6
返回 85 86 87 88 89 90

输入 3 5
返回 -1

题目倒是不难
根据 (beg +end) *num/2 = sum
倒推 beg= (2*sum/num-num+1)/2
但是这种题怎么算才能满足 100%通过率?
最高才 45% ]]>
LeetCode 2020 感恩节促销开始 tag:www.v2ex.com,2020-11-25:/t/729298 2020-11-25T21:03:14Z 2020-11-26T09:22:21Z Procumbens member/Procumbens To celebrate Thanksgiving, we are offering $30 off our annual premium subscription for a total of just $129!

Remember to enter the code "THANKS2020" at checkout. To take advantage of this limited-time offer, subscribe before 11:59pm PST on Monday, November 30.

降价$30,国内不清楚。有需要的请尽快订阅~

]]>
求分享 416 的衍生问题的解题思路 tag:www.v2ex.com,2020-11-16:/t/725628 2020-11-16T01:38:10Z 2020-11-16T10:42:45Z tamer member/tamer

https://leetcode-cn.com/problems/partition-equal-subset-sum/

先贴原题:

 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 

如果现在元素可以弃置,也就是不放入任何一个子集中,求弃置最少元素的分割成 2 个等元素和子集的方案.

如[1,1,3] 即分割成[1][1],3 弃置 

目前就想到暴力算法复杂度 3 的 n 次方 ,求个优化思路或者更优方案, 去重 /回溯的剪枝目前也没好的办法

]]>
LeetCode 有关 树 的题到底怎么套输入 tag:www.v2ex.com,2020-10-31:/t/720567 2020-10-31T14:00:58Z 2020-10-31T18:19:42Z Bechbaliq member/Bechbaliq 只给了树的定义,在自己的 IDE 上怎么测试(Javascript

BST, BFS, DFS 都有这类题,不会套输入就完全做不了

求有经验的老哥指点一下

]]>
有没有正在刷 LeetCode 的小伙伴们? tag:www.v2ex.com,2020-10-14:/t/715059 2020-10-14T20:33:03Z 2020-10-14T03:29:45Z MintyMentors member/MintyMentors 楼主目前准备转码

感觉自己刷题总是会动力不足或者三天打鱼两天晒网

于是跟几个小伙伴建了一个 LeetCode 刷题打卡群,连续打卡有奖励的那种!

感觉大家一起刷题会更有动力一点~

然后如果有不会的问题欢迎在群里提问,也欢迎帮助解答其他人的问题~

想入群的小伙伴可以加我的微信 [ evelynxxyy ] ,备注 [刷题]

]]>
九章算法 | 字节跳动面试题:用 Rand7()实现 Rand10() tag:www.v2ex.com,2020-07-03:/t/686763 2020-07-03T01:59:11Z 2020-07-03T09:35:13Z hakunamatata11 member/hakunamatata11 已有方法rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10生成 1 到 10 范围内的均匀随机整数。

不要使用系统的Math.random()方法

  1. rand7 已定义。
  2. 传入参数: n 表示 rand10 的调用次数。

在线评测地址:LintCode 领扣

样例 1:

输入:1 输出:[7] 

样例 2:

输入:2 输出:[8,4] 

样例 3:

输入:3 输出:[8,1,10] 

[题解]

考点:

题解:

  1. [1,7] 的随机数, 减一-> [0,6] 的随机数,乘以 7 -> {0,7,14,21,28,35,42} 中的随机数
  2. [1,7]的随机数 1+2 是[1,49]的随机数,且均匀生成 -> [0,48]的随机数 取出[0,39]区间 取到的概率是 1/49 除以 4-> [0,9]的随机数 加一->[1,10]的随机数
public class Solution extends SolBase{ public int rand10() { while(true){ int rand49 = (rand7() - 1) * 7 + rand7() - 1; if(rand49 <= 39) { return rand49 / 4 + 1; } } } } 

更多语言代码参见:九章算法

]]>
长文慎点! Kaggle 比赛的 top2%和金牌到底差距有多大? tag:www.v2ex.com,2020-06-24:/t/684406 2020-06-24T04:02:05Z 2020-06-24T04:07:28Z longSwordMan member/longSwordMan 入了 kaggle 这个坑三年,成绩还凑合,目前拿到一金二银二铜,也和综合排名 top10 的种子选手组过队。

欢迎在讨论区交流,也欢迎添加微信 longswordMAN 进群+听直播分享,加的时候注明 V2EX 的 id 就行。

我会尽量保持周更的频率,每条评论也会看,比较走心的高质量评论必回,看反馈情况决定是否改变更新频率。

帖子主要谈三个主题:

1.kaggle 的比赛冲分技巧。在具备 top10%乃至 top2%的实力的情况下,如何百尺竿头更进一步,冲击奖牌, 以及如何选择适合自己的项目。

2.在简历里怎么包装项目,面试的时候怎么展示,

3.怎么通过 kaggle 来 networking,以文会友,建立人脉网络。

废话不多说,正题开始。

想要在 kaggle 平台制霸,我们首先要了解 kaggle 的前世今生,了解他比赛的风格和最近几年的变化方向。

Kaggle 是一个对给定数据集的的数据建模平台,以分类、回归问题为主(也有少许聚类,我个人估计应该是因为聚类模型的表现衡量起来相对麻烦,以后如果有时间,可以开一个专题讲聚类,现在因为和主线有点偏离,先按下不表)。

Kaggle 竞赛的合作方,早期可以认为是悬赏方,提供数据和任务,往往是公司内部数据(当然作了一些去敏),进而提出公司一个实际需要解决的问题。这个模式有一些类似赏金猎人,尤其是在 2010 年前后,kaggle 还比较小众的时候,参赛人数不多,如果不是金额特别爆炸的悬赏,不是精心雕琢的模型往往也能瞎打乱撞拿到奖金。

虽然一开始 kaggle 的初衷有一些类似于赏金猎人,但是随着平台的壮大,单纯的去冲击奖金的期望收益已经大大降低,所以 kaggle 平台慢慢就演变成了现在类似竞赛平台的形式。尤其是在被 Google 收购之后,kaggle 上的题目风格发生了不小的变化,概括起来就是两多两少。

两多:

参赛队伍变多

深度学习模型变多

两少:

数据量变小

比赛数量变少

]]>
微软面试真题+面试官改编 leetcode 思路(哈希篇-加更) tag:www.v2ex.com,2020-06-23:/t/684037 2020-06-23T03:32:12Z 2020-06-23T03:35:12Z longSwordMan member/longSwordMan 由于帖子的篇幅所限,我们会对每一个分类都提及,如果想深挖且时间充裕的同学可以报一下我的课,我总结了十类改编题,每一类都有多个改编的案例,一类需要四-五个小时的钻研。

我们这里回过头最后再说一个哈希的改编案例,接下来我们要说 array 和 linked list 这对相爱相杀的兄弟。

我们接着来看一个哈希表的例子:老规矩,先上原题:

给定 string 数组把所有“同构词”聚在一起。

例: ["eat", "tea", "tan", "ate", "nat", "bat"], 返回: [
["ate", "eat","tea"],
["nat","tan"],
["bat"] ]

说明:如果两个单词所组成的字母完全相同,只是字母位置不同,我们叫它们 anagrams 。首先我们冷静分析一下,既然是用哈希表,一定要有适合做 key 的元素。那么需要找到适合的 key,应该怎么去做呢?我们观察一下,"tea" 和“ate”只是存在顺序的区别,最终这两个单词能够被映射到同样的”同构词“,也就是我们的 group 需求,把 anagram 全凑起来,我们在每次哈希前,把字母排个序,那么所有 anagram 的哈希值就会一样。我们用 string 做 key,不过需要将 key 排序后的结果当 key,得解。

]]>
微软面试真题+面试官改编 leetcode 思路(链表篇) tag:www.v2ex.com,2020-06-22:/t/683702 2020-06-22T04:16:42Z 2020-06-22T00:16:42Z longSwordMan member/longSwordMan 在上一篇文章与大家分享了动态规划篇,今天想继续跟大家探讨一下链表篇。

链表是一个非常经典的数据结构,但是也非常 tricky,而且常见的是令人虎躯一震的空间 in place 要求,由于链表的一些特殊性质,经常会作为一个面试考察的重点。

我们先看一个原题: 从已排序的链表中移除重复的单元,如 1->1->2, 返回 1->2. 1->1->2->3->3, 返回 1->2->3

思路很简单,双指针,指针往后找,碰到相同的数值,继续往后,直到第一个不同的数,讲慢指针的 next 指向快指针,得解。关键在于 one pass,一次过,如果搞个哈希表来做那是画蛇添足,空间上不是最优解,而空间的考察其实是链表的重中之重,所以这就是我一直强调的,哈希虽好,但要慎用。

改编题 1: 给定有序链表,如果某元素出现三次以上的,删除该元素,1->1->2->3->3->3, 返回 1->1->2 我们仍然可以双指针,如果数值不同,快慢指针各走一步 遇到相同数值,快指针继续走,同时计数,超过三次就接着往后,碰到新数字后修改慢指针的 next 。

改编题 2: 但如果改成无序的链表呢? 题目变成:给定无序链表,如果某元素出现三次以上的,删除该元素。 这时候我们要头脑冷静地分析,条件虽然变了,但和之前的题目有什么关联和不同? 这时候不是有序数组,因此相同的数不会团在一起,为了能够方便判断是否有 3 个以上的频次,我们需要借助哈希表去统计出现的频次,key 是链表元素的 value,值是频次。那么第二次遍历的时候,我们把链表的 value 当作 key 去哈希表查找,如果对应值大于三,删除元素,问题得解。算法时间复杂度 O ( n ),空间 O ( n )。

改编题 3: 无序链表,但如果要求重复元素的个数不超过自身的 value 呢,比如:1-> 1-> 2->3->2->2 改成:1 - 2 - 3 - 2 还是用哈希,只不过需要厘清几个值的关系,该 map:key 是链表的 value,value 是链表 value 出现的频次。循环的时候,第一次遍历统计频次,第二次遍历,如果 map ( node.val )> node.val ,删一个节点,并且同时 map 中的 node.val 值减一,算法时间复杂度 O ( n ),空间 O ( n )得解。

其他推荐原题: 两链表交叉点问题 链表环问题 链表 merge sort 问题

这几个经典原题原题的改变我之后在我的荔枝微课直播间都会提及。 可以加微信 longswordMAN 进群+听直播,注明 V2EX 的 id 即可。

]]>
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86