力扣记录
京畿豫陕转江浙沪经略安抚使
这个作者很懒,什么都没留下…
展开
-
【剑指offer38】全排列问题-递归的运用
输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8关于深度优先遍历的考察,这个题目很典型。虽然刚开始已经把递归树画出来了,但是在写代码时候还是没有写出来。关键是理解:字符串的全排列,要确定好每个位置上的字符。对于重复的结果使用set进行去重。方法一...原创 2021-06-22 23:44:01 · 213 阅读 · 2 评论 -
【739】单调栈应用
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。翻译一下题目:给定一个...原创 2021-06-22 23:33:56 · 152 阅读 · 0 评论 -
【72】编辑距离问题
给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例2:输入:word1 = "in...原创 2021-06-21 23:54:51 · 150 阅读 · 0 评论 -
【215】第K个大的数,K相关题目-分治、堆应用
1、从大到小第K个数在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4题目要求是求得从大到小第K个数。首先想到的是对数组排序,直接sort()取k-1个数。复杂度为O(NlogN).方法二:根据快排中partition的思想,进行分治,,存在情况..原创 2021-06-21 23:43:37 · 143 阅读 · 0 评论 -
【146】LRU缓存机制
运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除...原创 2021-06-20 23:08:47 · 164 阅读 · 1 评论 -
【204】质数统计
统计所有小于非负整数n的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106shouxian...原创 2021-06-20 09:38:25 · 147 阅读 · 0 评论 -
【231】判断是否是2的次幂--位运算相关
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出:true示例 5:输入:n = 5输出:false来源:力扣(LeetCo...原创 2021-05-30 11:15:58 · 289 阅读 · 0 评论 -
【75】颜色分类--荷兰国旗问题
给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1]提示:n ...原创 2021-05-30 10:42:17 · 94 阅读 · 0 评论 -
【39】组合总和--回溯
这是一类题目,最近几天刷题总碰见递归or回溯类型题目。虽然递归解决办法是最基础的方案,但是面对某些题目,有时候还是不能立刻设计出最基础的递归方案---1 如何设置终止条件。越界?or 满足条件时候的处理2 分情况往下递归的时候:如何往下写呢?3 另外对于回溯最重要的 剪枝处理。大多数题目原始递归会超时,剪枝处理可以使得题目运行时间达标一、回溯应用给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target...原创 2021-04-26 23:47:23 · 118 阅读 · 0 评论 -
【26】删除有序数组中的重复选项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDupl..原创 2021-04-18 20:08:49 · 137 阅读 · 1 评论 -
【220】【3】滑动窗口(双指针)的应用,另有序的容器应用
一、绝对值不超过限制的最长连续子数组的长度给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。示例 1:输入:nums = [8,2,4,7], limit = 4输出:2通过维护一个动态窗口,在滑动窗口中快速的求出最大值与最小值,若满足limit限制。求滑动窗口的大小。这里通过left、right两个指针维护滑窗,注...原创 2021-04-18 19:58:04 · 126 阅读 · 0 评论 -
【227】基本计算器II--无括号的加减乘除计算器
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。示例 1:输入:s = "3+2*2"输出:7示例 2:输入:s = " 3/2 "输出:1示例 3:输入:s = " 3+5 / 2 "输出:5提示:1 <= s.length <= 3 * 105s 由整数和算符 ('+', '-', '*', '/') 组成,中间由一些空格隔开s 表示一个 有效表达式表达式中的所有整数都是非负整数,且在范围 ...原创 2021-03-11 23:53:49 · 325 阅读 · 0 评论 -
【224】基本功能计算器
昨天加班回来有点晚,做完题,没有来得及写记录。今天补一下昨天的题解。给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值示例 1:输入:s = "1 + 1"输出:2示例 2:输入:s = " 2-1 + 2 "输出:3示例 3:输入:s = "(1+(4+5+2)-3)+(6+8)"输出:23提示:1 <= s.length <= 3* 105s 由数字、'+'、'-'、'('、')'、和 ' ' 组成s 表示一个有效的表达式..原创 2021-03-11 23:36:33 · 109 阅读 · 0 评论 -
【1047】删除字符串中的所有相邻重复项
力扣第二天,今天遇到一道easy,不用cv我也做出来,(手动狗头)。刻意+坚持给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其..原创 2021-03-09 22:45:29 · 102 阅读 · 0 评论 -
【132】求把字符串分割成回文串的最少切分次数
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。返回符合要求的 最少分割次数 。示例 1:输入:s = "aab"输出:1解释:只需一次分割就可将s 分割成 ["aa","b"] 这样两个回文子串。示例 2:输入:s = "a"输出:0示例 3:输入:s = "ab"输出:1提示:1 <= s.length <= 2000s 仅由小写英文字母组成这道题是“求一个字符串的所有”回文串 那道题的拓展。如何求某个...原创 2021-03-09 00:15:24 · 840 阅读 · 2 评论