算法
文章平均质量分 75
尼特子很辛苦哟
这个作者很懒,什么都没留下…
展开
-
如何判断回文链表
如何判断回文链表思路寻找回文串的核心是中心向两端扩展string palindrome(string& s, int l, int r) { // 防止索引越界 while (l >= 0 && r < s.size() && s[l] == s[r]) { // 向两边展开 l--; r++; } // 返回以 s[l] 和 s[r] 为中心的最长回文串原创 2021-03-02 00:15:33 · 784 阅读 · 0 评论 -
用迭代和递归两种方式实现链表反转
文章目录反转整个链表反转链表前 N 个节点92.反转链表II(中等)25.K个一组翻转链表(困难)总结反转整个链表递归方式ListNode reverse(ListNode head) { if (head.next == null) return head; ListNode last = reverse(head.next); head.next.next = head; head.next = null; return last;}迭代方式原创 2021-02-16 11:39:29 · 594 阅读 · 0 评论 -
回溯算法初探
文章目录回溯算法初探思路[46. 全排列](https://leetcode-cn.com/problems/permutations/)[51. N 皇后](https://leetcode-cn.com/problems/n-queens/)总结回溯算法初探思路回溯问题,实际上就是一个决策树的遍历过程,需要思考3个问题1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树底层,无法再做选择的条件。代码方面,回溯算法的框原创 2021-02-16 10:11:14 · 244 阅读 · 0 评论 -
动态规划解题框架
文章目录动态规划是什么?[509. 斐波那契数](https://leetcode-cn.com/problems/fibonacci-number/)题目描述**1.暴力递归**2.**带备忘录的递归解法**3.**DP 数组的迭代解法**总结[322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)题目描述分析暴力递归(超时)带备忘录的递归(超时)DP 数组的迭代解法归纳动态规划是什么?动态规划问题的一般形式就是求最值,求解动态规划的核心原创 2021-01-30 10:18:46 · 262 阅读 · 0 评论 -
算法绪论
思路文章目录思路数据结构存储方式数据结构基本操作算法刷题指南数据结构存储方式数组:顺序存储紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但扩容时需要重新分配更大的空间,时间复杂度O(n)链表:链式存储元素不连续,而是靠指针指向下一个元素的位置,所以不存在数组的扩容问题。如果知道某一元素的前驱和后驱,操作指针即可删除该元素或者插入新元素,时间复杂度 O(1)。但是正因为存储空间不连续,你无法根据一个索引算出对应元素的地址,所以不能随机访问;而且由于每个元素必原创 2021-01-28 10:31:22 · 107 阅读 · 0 评论