反向链表是程序员必须具备的基本素质,在面试和笔试时经常出现。总觉得求逆链表的代码不太好理解,所以决定抄袭leetcode的经典求逆链表题,用十多张图来分析。希望加深大家对链表反转的理解。感谢您的阅读。 leetcode的逆向链表原创问答标题...
给你一个字符串s,找出s中最高的回文子串。 例一:输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 这道题可以用中心展开法来解答,从中心开始,向两侧扩散来评价回文串。 for 0 <= i &l...
给定表中没有重复数字的数字,返回所有可能的全排列。您可以按任意顺序返回答案。 例1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 例2:输入:n...
刷leetcode的时候,经常会遇到回溯算法的问题。回溯算法是五种基本算法之一,大多数大厂也喜欢询问。下面我们一起来学习一下回溯算法例程。 1。什么是回溯算法回溯算法是通过探索所有可能的候选解来找到所有解的算法。 它采用试错的思想,尝试一步...
请设计并实现。满足 LRU(最近最少使用)缓存约束的数据结构。 实现 LRUCache 类: LRUCache(intcapacity) 使用正整数作为容量来初始化 LRU 缓存 int get(int key) 如果缓存中存在关键字,则...
给你一组链表,每个链表都是按照升序排列的。将所有链表合并成一个升序链表,并返回合并后的链表。 示例1:输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [...
给定一个字符串s,求最长无重复字符子串的长度。 例1:输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 例2:输入: s = "bbbbb" 输出: 1 解释: 因为无重...
获取一个链表,删除链表中最后一个的第n个节点,返回链表的根节点。 示例:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 这个问题可以通过使用双指针来解决。由于我们要找到倒数第二个节点n,所以可以使用两个指...
趁热打铁今天我们继续用二叉树的角度来谈谈快速排序算法的原理和应用。 ?一句话概括了归并排序:先对数组的左半部分进行排序,然后对数组的右半部分进行排序,然后将数组的两半部分合并。 同时问了一个问题,让你用一句话总结一下快速排序。我的答案是:快...
组合排序。如果我向您展示代码并要求您想象合并排序过程,您会想到什么场景? 这是一种数组排序算法,所以想象一下数组的 GIF 逐一交换元素?如果是这样,则图案很浅。 但是如果你想到二叉树,甚至是二叉树的后序遍历,模式就很高,你掌握框架的概率...