首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 版 LeetCode 刷题笔记 #1 两数之和

刷题过程呢,针对每道题目,我打算记录下自己的思路和解答过程。再根据提交答案的比对,拆解参考答案或者其它优质答案来进行自我的优化,最终给出一个最推荐的解答。...题目 中文题目 第 1 题 两数之和: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。...) 链接:https://leetcode-cn.com/problems/two-sum 英文题目 Question 1 Two Sum: Given an array of integers, return...1.调换下两个数的位置 这算挺神奇一发现,刚我们在 for 循环中,针对得到的第 i 项 item,检测差值是否在 nums[i+1:] 中,也就是在该项后面寻找差值。...结论 第一题,难度在 LeetCode 中是简单程度,但这么琢磨下来,学到的点也不少:算法的设计,数据结构的选择等。

90830

Python 版 LeetCode 刷题笔记 #2 两数相加

也就是在我们能拿到结果 7 0 8 后,也要把它转化为这么一个 ListNode 才可以。...同样的代码在不同分区提交,数据差异还是有的:执行时间估计和服务器所在地有关吧,目前我在香港,用英文版的执行时反倒更快些;但这个击败用户比例,心痛,看来还要继续优化啊。...优化 结合着推荐答案与评论区,尝试了下在刚刚的思路上优化,我刚代码中两个 while 循环遍历输入的两个链表,最后又一个 for 循环来来生成结果链表,而这三个循环过程实际上可以做到逐位对应,也就是遍历过程可以放到一起...思路展示 图片、答案思路来源: https://leetcode-cn.com/problems/add-two-numbers/solution/liang-shu-xiang-jia-by-leetcode...结论 第二题,难度在 LeetCode 中是中等难度,确实一上来这个定义的 ListNode 给了一个下马威,只能尝试着先琢磨明白这个类、搞明白如何返回相应的格式结果,之后便可以回归到我们可以正常设计的算法上来了

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    每天一道leetcode16-最接近的三数之和

    / 英文链接 https://leetcode.com/problems/3sum-closest/description/ 题目详述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target...题目详解 思路 先sort一下array,为啥要sort呢,因为要用到two pointers 来遍历找两数之和,只有在从小到大排序之后的结果上,才能根据情况移动left 和right。...首先是如果数组只有3个数字,那么直接返回这三个数字之和;(最少三个数) 当确定好了第一个数字后,就在剩下的array里找两数之和,在加上第一个数字,用这个tempSum减去target 来得到tempCha...利用two pointers 特性, 如果tempSum 比target 小的话,说明我们需要更大的sum,所以要让left++以便得到更大的sum。...pointers 特性, 如果tempSum 比target 小的话,说明我们需要更大的sum,所以要让left++以便得到更大的sum。

    35510

    linux下使用gtest框架进行cc++测试-gtest环境搭建

    gtest-all.cc 再生成.a静态库文件: ar -rv libgtest.a gtest.o 生成的libgtest.a以及该目录include下的头文件都是我们后面测试需要的,其他文件在测试项目中暂时用不上...目录下新建src目录和include目录,分别用于存放头文件和.c文件 我在include下放了两个头文件common.h 和leetcode_functions.h 内容分别如下: common.h...编译 g++ -o 001_two_sum.o -c ./leetcode/src/001_Two_Sum.c -I ....[ RUN ] two_sum_test.twoSum001 numsSize=4 [ OK ] two_sum_test.twoSum001 (0 ms) [---------...可以看到,共有一个用例,通过了一个用例 项目代码可以在github下载,下载地址:https://github.com/yanbinghu/LeetCodeWithC.git, 节点: f727e04969ffad51a7dba4cd1227772413cbe7f1

    5.6K31

    LeetCode刷题记录(easy难度1-20题)

    LeetCode Two Sum 题目:two sum Given an array of integers, return indices of the two numbers such that...,如果这个字符串较长,就会造成越界错误 所以我们首先需要得到最短字符串和它自身的长度,来确定外循环次数,内循环去循环遍历每个字符串。...有了这个结构,就能知道我们需要得到结点的值才能进行比较。 又由于题目要求我们使用其中的一个结点将两个链表拼接起来,换句话说,就是将一个链表合并到另一个链表上,所以并不能创建一个新链表去进行操作。...然后笔者在纸上,分别列举了当n=1,2,3,4…时的结果数,发现了一个规律,每一次的结果等于上一次+上上次的结果的和,类似与斐波那契数列。...上述环境在ubuntu16.04 lts和python3.5中测试成功 上述文字皆为个人看法,如有错误或建议请及时联系我

    1.3K40

    LeetCode 18: 4 Sum 寻找4数和

    【狗头】 使用3 Sum 言归正传,回到算法本身,在3 Sum问题当中,我们通过two pointers算法,维护了一个区间,使得这个区间头尾元素的和等于一个特定值。...所以我们利用3 Sum也一样,我们只需要枚举第一个元素,然后在剩下的数组当中,套用3 Sum寻找可能的组合即可。 解法也很简单,我们只需要把之前3 Sum的代码抄过来,然后增加一个调用函数即可。...一个想法是我们能不能跳过3 Sum直接用2 Sum?其实可以的,因为我们在3 Sum当中只枚举了第一个数,然后通过two pointers寻找剩下的两个数的组合。...因为我们无法同时缩放两个区间,看起来是两个two pointers套用,但实际上还是只是用到了一个two pointers算法而已。...正是在反复的思考当中,我们的算法思维才能养成,解题能力才能提升。 当然,另一个原因是不掰扯出一些道理来,这么大段我就白写了【狗头】。

    43520

    leetcode第一题

    两种思路 第一种:先遍历一遍数组,使用target减去数组中每一个元素得到一个差,然后再去遍历数组,看看数组中是否存在一个和这个差一样的数。如果存在,那么则代表查找成功。否则查找失败。...leetcode官方的代码,第二个Tom edition 运行结果: 第二种方法就是比较高级的,这是我通过leetcode官网学习到的,所以分享出来大家一起学习一下。.../problems/two-sum/solutions/434597/liang-shu-zhi-he-by-leetcode-solution/ 来源:力扣(LeetCode) 著作权归作者所有。...还有一个java版本,感觉java版本的更容易理解一些,但是也不容易想出来。.../problems/two-sum/solutions/434597/liang-shu-zhi-he-by-leetcode-solution/ 来源:力扣(LeetCode) 著作权归作者所有。

    13310

    算法细节系列(2):231.Power of Two && Three

    算法细节系列(2):231.Power of Two && Three 前言 在刷leetCode时,遇到了一系列关于power of Number的问题,刚开始不以为然,以为用简单的递归就能求解,可直到看到...它的思维深度和广度着实不是我等小菜能够比拟的,但我还是在其基础上强行解释了一些算法的核心思想。...我们换个维度考虑问题,所给的数都是十进制的数,而算法2.是把十进制的数映射到了二进制上,因为我们求的是power of Two,那么我们就必须映射到二进制上去嘛?..._{i=0}^{len(s)-1}s[i]*3^i 得到: 1 -> 000_001 3 -> 000_010 9 -> 000_100 27 -> 001_000 我一直在思考这种解法是如何被发现的...即公式: ∑i=0len(s)−1s[i]∗3i \sum_{i=0}^{len(s)-1}s[i]*3^i ---- 个人觉得上述,关于该算法的解释有点牵强,但有一点是我从归纳和总结中学到的,

    66610

    每天一道leetcode18-四数之和

    昨天的题解 题目 每天一道leetcode18- 四数之和 分类:双指针 中文链接: https://leetcode-cn.com/problems/4sum/description/ 英文链接...https://leetcode.com/problems/4sum/description/ 题目详述 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素...pointers 来遍历找两数之和,只有在从小到大排序之后的结果上,才能根据情况移动left 和right。...与target不相等 利用two pointers 特性, 如果tempSum 比target 小的话,说明我们需要更大的sum,所以要让left++以便得到更大的sum。...与target不相等 利用two pointers 特性, 如果tempSum 比target小的话,说明我们需要更大的sum,所以要让left++以便得到更大的sum。

    31230

    ​LeetCode刷题实战260:只出现一次的数字 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊的问题叫做 只出现一次的数字 III,我们先来看题面: https://leetcode-cn.com/problems/single-number-iii/ Given an integer...Find the two elements that appear only once. You can return the answer in any order....给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。...} int firstOne = sum & (-sum); // 得到最低位的1,sum & (-sum)这是一个常见的技巧 for(int i =

    25320

    实战 LeetCode 15.三数之和、18.四数之和,并扩展至 N 数之和

    题目描述 15.三数之和 链接:https://leetcode-cn.com/problems/3sum/ 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,...18.四数之和 链接:https://leetcode-cn.com/problems/4sum/ 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素...left, right = j + 1, length - 1 while left < right: four_sum = two_sum...如果觉得自己已经理解了的话,可以去 LeetCode 上实际写下。看看自己到底有没有掌握。...LeetCode 上更多的关于双指针的题目链接: https://leetcode-cn.com/tag/two-pointers/ 如果有其他问题的话,可以在公众号底部找到我的联系方式,一起交流。

    1.6K20

    LeetCode | 2.两数相加

    这次来写一下 LeetCode 的第 2 题,两数相加。 题目描述 题目直接从 LeetCode 上截图过来,题目如下: ?...上面的题就是 两数相加 题目的截图,同时 LeetCode 会根据选择的语言给出了一个类的定义或者函数的定义,然后在其中实现 两数相加 的解题过程。这次我使用 C 语言来进行完成。...,然后我们要做的就是让两个链表的每个节点相加,并产生新的节点构成一个新的链表,并且链表上的每个节点只能存储一位数。...问题分析 初看题目,可能觉得并不复杂,事实上也的确不是很复杂。两个链表的每个节点相加,然后所得的结果存在一个新的链表节点当中,且这个节点中只能存一位数。...链表最后的一对节点相加后也可能会产生进位,因此在循环相加后,需要判断是否产生了进位,如果有进位需要为这个进位一个单独的节点链到链表的结尾处。

    33820
    领券