![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣刷题
文章平均质量分 70
我叫RT
无它,唯手熟耳。
心之所向,莫向外求。
展开
-
432. 全 O(1) 的数据结构【双向链表 + 哈希表】
思路:数据结构1:保存每个key及其出现的次数。按序排列数据结构2:优化查找key的速度,取消遍历数据结构1匹配key的过程。基于以上思路,数据结构1选取双向链表,因为随着inc操作,链表中的结点位置会频繁变动需要具备增删改操作都是O(1),且结构本身需要具备有序。数据结构2选取哈希map,因为hash增删改查操作都是O(1)。因此,我们可采用以下结构(错误示范,不满足时间复杂度O(1)):// 双向链表,每个节点存放 key 及其出现次数。以计数递增排列list<pair<原创 2022-03-16 19:22:34 · 1157 阅读 · 0 评论 -
判断两链表的相交节点
输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。思路一:将其中一个链表的所有节点存入哈希表中。遍历另一个链表的时候查看当前节点是否已出现在哈希表中。思路二:先求出两个链表的长度,使其从相同位置开始出发,同时遍历两个节点。如上图A从a1出发,B从b2出发。思路三:双指针法,p1遍历A,p2遍历B,谁先结束谁就又从另一个链表的头部开始遍历,直到相遇(类似快慢指针)https://leetcode-cn.com/problems/liang-ge-lian-biao原创 2021-03-29 17:23:11 · 121 阅读 · 0 评论 -
子集(重复元素) | 回溯 | 子集树
子集 II https://leetcode-cn.com/problems/subsets-ii/给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]对于之前的子集树的思路,递归每一层,给出两种选择,选与不.原创 2021-03-31 22:32:45 · 358 阅读 · 0 评论 -
Nim 游戏 | 归纳推理法:轮流抓取石头,当n不为4的倍数使,我们总有办法赢得比赛
https://leetcode-cn.com/problems/nim-game/题目:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1: 输入:n = 4 输出:false 解释:如果堆中有 4 块石头,原创 2021-09-19 00:19:21 · 857 阅读 · 0 评论 -
1004. 最大连续1的个数 III
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释:[0,0,1,1,1,原创 2021-02-19 20:33:03 · 230 阅读 · 0 评论 -
771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。来源:力扣(LeetCode)原创 2020-10-02 23:53:41 · 305 阅读 · 0 评论 -
1248. 统计「优美子数组」
给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4,6], k = ...原创 2020-04-21 20:54:29 · 428 阅读 · 1 评论