随笔分类 - 卷
LeetCode&牛客网
摘要:206. 反转链表 - 力扣(LeetCode) (leetcode-cn.com) 思路: /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ fun
阅读全文
摘要:141. 环形链表 - 力扣(LeetCode) (leetcode-cn.com) 思路 1 快慢指针: 1. 设置两个指针,一个一次走一步,一个一次走两步。 2. 如果这个链表有环,那么快指针就一定会在某一个节点从后面追上慢指针。 3. 如果快指针可以指向nil, 那么这个链表就不是一个环形链表
阅读全文
摘要:234. 回文链表 - 力扣(LeetCode) (leetcode-cn.com) 思路 1 用栈: 1.先将head从头到尾都压入栈。 2.依次从栈中取出节点,和head及其后续节点进行比较。 3.如果从前向后第x节点和从后向前第x节点的值不相同,则这个链表不是回文链表。 func isPali
阅读全文
摘要:94. 二叉树的中序遍历 - 力扣(LeetCode) (leetcode-cn.com) 思路1 递归: 1.我印象中的“中序遍历是先访问左子树,再访问根节点,再访问右子树”。这样的描述有点模糊, 2.实际上前、中、后序遍历,都是先访问根节点,再访问它的左子树,再访问它的右子树。 3.它们之间的区
阅读全文
摘要:70. 爬楼梯 - 力扣(LeetCode) (leetcode-cn.com) 思路 动态规划: 【转载】动态规划五部曲: 1.确定dp[i]的下标以及dp值的含义: 爬到第i层楼梯,有dp[i]种方法; 2.确定动态规划的递推公式:dp[i] = dp[i-1] + dp[i-2]; 3.dp数
阅读全文
摘要:53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com) 思路1 贪心: 1. 创建两个变量,一个存储遍历过程中最大子数组和historyMax,一个存储前面元素的子数组和preMax 。 2. 为这两个值historyMax和preMax赋予int的最小值。 3.对n
阅读全文
摘要:21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com) 思路1 递归: 1.首先判断两个链表中是否有空链表,如果有则返回另一个。如果都是空,则返回那个都可以了。 2.然后比较两个节点的值,如果list1的值小于list2的值,则list1的下一个节点和list2继
阅读全文
摘要:20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com) 思路: 1.先将符号的对应关系写入到map中。 2.使用slice模拟栈。 3.遍历字符串,如果发现左符号,就将其写入栈中。 4.如果发现右符号,则去判断栈顶是否为对应的左符号。如果是,则将左符号出栈。如果不是,返
阅读全文
摘要:13. 罗马数字转整数 - 力扣(LeetCode) (leetcode-cn.com) 思路: 1. 将所有罗马符号对应的值都写入到map中,然后声明结果变量。 2. 遍历整个字符串,如果当前的字符元素对应值小于右侧元素对应值,结果变量减去当前元素值。 3. 如果当前元素不小于右侧元素值,结果变量
阅读全文
摘要:1. 两数之和 - 力扣(LeetCode) (leetcode-cn.com) 思路: 1.使用map存储已经遍历过的元素和索引。 2.每遍历一个元素就在map中查找是否有符合要求的元素。 3.只要找到符合要求的元素就直接返回当前元素的索引和符合要求的元素索引。 func twoSum(nums
阅读全文
摘要:这是一个新的分类,用来记录我刷题的心得和体会。 希望大家多多指教,谢谢。 相关链接 系列地址:卷 - 随笔分类 - SoutherLea - 博客园 (cnblogs.com)
阅读全文