LeetCode刷题笔记
雨不落
希望自己可以坚持,坚持喜欢的事,坚持喜欢的人
展开
-
进击的小白Day036——LeetCode刷题笔记014:删除排序数组中的重复项
题目来自LeetCode。题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后...原创 2019-04-12 10:26:59 · 100 阅读 · 0 评论 -
进击的小白Day036——LeetCode刷题笔记015:移除元素
题目来自LeetCode。题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 ...原创 2019-04-12 11:17:24 · 106 阅读 · 0 评论 -
进击的小白Day036——LeetCode刷题笔记016:实现strStr()
题目来自LeetCode。题目描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “a...原创 2019-04-12 11:44:13 · 110 阅读 · 0 评论 -
进击的小白——LeetCode刷题总结(未完待续)
在写完一个算法的时候,尤其是算法中涉及到循环的时候,要考虑一下有没有哪些循环是完全无用的,如刷题笔记016中,每次循环可以先判断haystack中剩余长度是否足够容纳一个needle的长度,如果不够,那就没有继续循环的必要,直接返回flag即可,换一种说法就是,把i < (n2 - n1 +1)作为循环的条件,可以大大减少循环次数,提高程序运行效率。...原创 2019-04-12 11:48:20 · 257 阅读 · 0 评论 -
进击的小白Day033——LeetCode刷题笔记011:两两交换链表中的节点
题目来自LeetCode。题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3。贴代码:struct ListNode* swapPairs(struct ListNode* head) { st...原创 2019-04-03 16:26:00 · 108 阅读 · 0 评论 -
进击的小白Day037——LeetCode刷题笔记:知识点:考虑所有特殊情况(未完待续)
涉及字符串①多个字符串时,需要考虑字符串个数为0或1时的情况②单个字符串时,需要考虑字符串字符个数为0或1的情况如:“14. 最长公共前缀”遍历数组时,循环从1而不是从0开始时,即默认数组为非空如:“14. 最长公共前缀”...原创 2019-09-03 20:36:37 · 198 阅读 · 0 评论 -
进击的小白Day037——LeetCode刷题笔记:知识点:用指针替换数组
参数以指针的形式作为函数形参时,可以以数组的形式调用char test(char **strs){ char a = strs[0][1]; //直接数组表示}例:“14. 最长公共前缀”2. 定义的指针当数组用char test(char **strs){ char *comm = ""; //定义指针指向空字符串 comm = (char*)malloc(size...原创 2019-09-03 20:47:42 · 328 阅读 · 0 评论 -
进击的小白Day038——LeetCode刷题笔记:知识点:哈希表(未完待续)
题目:1.两数之和原创 2019-09-10 21:36:33 · 207 阅读 · 0 评论 -
进击的小白Day038——LeetCode刷题笔记:知识点:报错总结(未完待续)
memset报错内存访问冲突解决办法:头文件中包含windows.h原创 2019-09-13 19:27:00 · 263 阅读 · 1 评论 -
进击的小白Day032——LeetCode刷题笔记010:删除链表的倒数第N个节点
题目来自LeetCode。题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?单指针遍历两次:struct ListNo...原创 2019-04-01 19:07:52 · 128 阅读 · 0 评论 -
进击的小白Day032——LeetCode刷题笔记009:合并两个有序链表
题目来自LeetCode。题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4贴代码:struct ListNode* mergeTwoLists(struct ListNode* l1, struc...原创 2019-04-01 14:44:47 · 253 阅读 · 0 评论 -
进击的小白Day026——LeetCode刷题笔记001:两数之和(static、return的用法)
题目来自从LeetCode。题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以...原创 2019-03-05 10:26:26 · 355 阅读 · 0 评论 -
进击的小白Day027——LeetCode刷题笔记002:整数反转(拆分整数、求整数的位数)
题目来自LeetCode。题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21用三句代码就可以实现:pop = x % 10; //取最后一个数x /= 10; //去掉最后一个数rev = rev * 10 +...原创 2019-03-06 11:38:10 · 226 阅读 · 0 评论 -
进击的小白Day028——LeetCode刷题笔记003:回文数
题目来自LeetCode。题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。...原创 2019-03-07 09:16:40 · 165 阅读 · 0 评论 -
进击的小白Day031——LeetCode刷题笔记007:字符串转换整数 (atoi)
题目来自LeetCode。题目描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后...原创 2019-03-14 14:15:50 · 118 阅读 · 0 评论 -
进击的小白Day028——LeetCode刷题笔记004:最长公共前缀
题目来自LeetCode。题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。贴代码:char* ...原创 2019-03-07 14:10:43 · 246 阅读 · 0 评论 -
进击的小白Day031——LeetCode刷题笔记008:盛最多水的容器
题目来自LeetCode。题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]...原创 2019-03-14 19:43:01 · 214 阅读 · 0 评论 -
进击的小白Day030——LeetCode刷题笔记005:两数相加
题目来自LeetCode。给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -&amp;gt; 4 -&amp;gt; 3) + (5 -&amp;gt; 6 -&amp;gt; 4)输出:7 ...原创 2019-03-13 09:06:25 · 158 阅读 · 0 评论 -
进击的小白Day034——LeetCode刷题笔记012:旋转链表
题目来自LeetCode。给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 ...原创 2019-04-04 09:55:44 · 160 阅读 · 0 评论 -
进击的小白Day034——LeetCode刷题笔记013:删除排序链表中的重复元素
题目来自LeetCode。给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3贴代码:struct ListNode* deleteDuplicates(struct ListNode* head) {...原创 2019-04-04 11:00:22 · 195 阅读 · 0 评论 -
进击的小白Day031——LeetCode刷题笔记006:无重复字符的最长子串
题目来自LeetCode。题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因...原创 2019-03-14 11:17:14 · 162 阅读 · 0 评论