Day 24 924. 删除子列表以使总和可被 K 整除 924. 删除子列表以使总和可被 K 整除题目12345678910111213141516171819202122232425You are given a list of positive integers nums and a positive integer k. Return the length of the shortest sublist (can be empty sublist 2021-10-03 91-day-algorithm #map
Day 23 30. 串联所有单词的子串 30. 串联所有单词的子串题目12345678910111213141516171819202122232425262728293031323334给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。 示例 1 2021-10-02 91-day-algorithm #unordered_map
Day 22 3. 无重复字符的最长子串 3. 无重复字符的最长子串题目123456789101112131415161718192021222324252627282930给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = &qu 2021-10-01 91-day-algorithm #unordered_set
属于二战的一些个人的思考 今天想写一下二战考研的一些想法,因为自己的大学基础走的并不扎实,好好的自己个人的综合素质被自己用的叫做一塌糊涂,自己本科时候做的项目与竞赛没得一个能拿的出手的,自己大学也就做出了一个重要的决定,就是自己能在大一的时候转了专业。 自己可惜在大学的时候没能多想一些,多行动一些,这样自己也能够学得更多,学的更加扎实一些。 如下: 做任何选择都要做到”退可以守,进可以攻。” 本科理应先把基础打好,学 2021-10-01 summary #Thinking
Day 21 447. 回旋镖的数量 447. 回旋镖的数量题目1234567891011121314151617181920212223242526272829303132给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的欧式距离相等(需要考虑元组的顺序)。返回平面上所有回旋镖的数量 2021-09-30 91-day-algorithm #unordered_map
Day 20 347. 前 K 个高频元素 347. 前 K 个高频元素题目123456789101112131415161718192021222324给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1] 提示:1 < 2021-09-29 91-day-algorithm #priority_queue #unordered_map
Day 19 1. 两数之和 1. 两数之和题目12345678910111213141516171819202122232425262728293031给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums 2021-09-28 91-day-algorithm #unordered_map
Day 18 987. 二叉树的垂序遍历 987. 二叉树的垂序遍历题目1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1 2021-09-27 91-day-algorithm #multiset
Day-17 297. 二叉树的序列化与反序列化 297. 二叉树的序列化与反序列化题目12345678910111213141516171819202122232425262728293031323334353637383940414243序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化 2021-09-26 91-day-algorithm #Binary Tree
Day-16 513. 找树左下角的值 513. 找树左下角的值题目12345678910111213141516171819给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:输入: root = [2,1,3]输出: 1示例 2:输入: [1,2,3,4,null,5,6,null,null,7]输出: 7提示:二叉树的节点个数的范围是 [1,104]-231 < 2021-09-25 91-day-algorithm #Binary Tree
Day-15 129. 求根节点到叶节点数字之和 129. 求根节点到叶节点数字之和题目1234567891011121314151617181920212223242526272829303132给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之 2021-09-24 91-day-algorithm #Binary Tree
Day-14 100. 相同的树 100. 相同的树题目123456789101112131415161718192021222324给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false 2021-09-23 91-day-algorithm #Binary Tree
Day-13 104. 二叉树的最大深度 104. 二叉树的最大深度题目1234567891011121314给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 题目思路 1、简单题,可以使用递归解决问题 2021-09-22 91-day-algorithm #Binary Tree
Day-12 146. LRU 缓存机制 146. LRU 缓存机制题目123456789101112131415161718192021222324252627282930313233343536373839404142运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int g 2021-09-21 91-day-algorithm #linklist #hash
Day-11 142. 环形链表 II 142. 环形链表 II题目12345678910111213141516171819202122232425262728293031323334353637给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用 2021-09-20 91-day-algorithm #linklist
Day-10 160. 相交链表 160. 相交链表题目12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中 2021-09-19 91-day-algorithm #linklist
Day-09 109. 有序链表转换二叉搜索树 109. 有序链表转换二叉搜索树题目123456789101112131415给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二 2021-09-18 91-day-algorithm #BST
Day-08 24. 两两交换链表中的节点 24. 两两交换链表中的节点题目1234567891011121314151617181920212223242526给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1 2021-09-17 91-day-algorithm #linklist
Day-07 61. 旋转链表 61. 旋转链表题目1234567891011121314151617给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1] 提示:链表中节点的数目在范围 [0, 500] 内-100 <= No 2021-09-16 91-day-algorithm #linklist
Day-06 768. 最多能完成排序的块 II 768. 最多能完成排序的块 II题目12345678910111213141516171819202122232425262728这个问题和“最多能完成排序的块”相似,但给定数组中的元素可以重复,输入数组最大长度为2000,其中的元素最大为10^8。arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组 2021-09-15 91-day-algorithm #DP