leetcode笔记
Dachao1013
华为全栈工程师一枚,多分享,多总结,加油!
微信号yc299792
欢迎来扰
展开
-
leetcode刷题笔记之全排列
题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]全排列的话,这个有好几种做法,最简单的还是一个交换的思想:先拿到第一个元素,然后用第一个元素和后面的依次交换交换完以后,就是再对除第一个元素之外的后面的序列继续递归然后交换完肯...原创 2020-01-20 09:09:37 · 319 阅读 · 0 评论 -
动态规划-看完就会系列
前言第一眼看到动态规划四个字,我的感觉是,好像很牛逼的样子,是不是很难啊,其实掌握了一定套路后,真没那么难。描述:动态规划就是一种解决问题的方法,什么方法呢?就是利用已经知道的解去求解未知问题的解,如果这两个问题之间存在一定的联系,那么就可以用已知解加上这个联系得到未知解了。比如你想去求1+1+1这个问题的解,那么我告诉你1+1=2,那么1+1+1就是1+1的解再加上1喽,这就是他们之间的...原创 2019-12-23 16:35:05 · 218 阅读 · 0 评论 -
leetcode刷题笔记(七)—双指针双索引的用法遍历数组二
前言接上一篇的双索引问题1、给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n ...原创 2019-12-16 16:51:00 · 442 阅读 · 0 评论 -
leetcode刷题笔记(六)—双指针双索引的用法遍历数组
碎碎念这一篇我把代码和注释都写在一起了,应该都是能看懂的# 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。# # 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。# # 说明:# # 返回的下标值(index1 和 index2)不是从零开始的。# 你可以假设每个输入只对应唯一的答案,而且你不可以重...原创 2019-12-16 09:51:51 · 338 阅读 · 0 评论 -
leetcode刷题笔记(五)—三路快排算法
快速排序算法取两个游标left,right,初始状态为最左和最右,取一个基准值base然后准备写循环体,当left比right小的时候,我们先从右边找比基准值小的数字,找到以后,把它放在left上,再去从左边找比基准值大的数字,找到以后把它放在右边当循环退出的时候,left=right,这时左边一定比base小,右边一定比base大,把base放上去即可然后再对左边数组重复上述操作,右边...原创 2019-12-15 18:28:06 · 225 阅读 · 0 评论 -
leetcode刷题笔记(四)-数组相关的问题
描述:1、给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ #...原创 2019-12-15 10:43:34 · 221 阅读 · 0 评论 -
leetcode刷题笔记(三)
二分法的使用与总结:无脑使用while left < right在退出循环时再确定是否需要后处理,不用的话就直接返回,否则判断完返回在循环里面先去得到一个中位数,然后开始写分支逻辑,先写排除中位数的分支逻辑,然后再写反向的逻辑,因为这样比较好写。先写好些的逻辑,剩下的自然就写出来了,加上注释也比较好懂。然后根据写的逻辑判断是使用左中位数还是右中位数,当左边界收缩的时候,我们使用左中位...原创 2019-12-14 20:58:17 · 119 阅读 · 0 评论 -
leetcode刷题笔记(二)
描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...原创 2019-12-14 09:28:28 · 127 阅读 · 0 评论 -
leetcode刷题笔记(一)
描述:1、给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:首...原创 2019-12-14 08:11:25 · 130 阅读 · 0 评论