LeetCode数据结构刷题
喜欢喝雪碧的阿埋
不在吨吨吨,就在啪嗒啪嗒哦~
展开
-
LeetCode 203. 移除链表元素(java)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的节点数目在范围 [0, 104] 内1 <= Node.val..原创 2022-05-16 17:29:38 · 204 阅读 · 0 评论 -
LeetCode 141. 环形链表(java)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连..原创 2022-05-16 17:28:17 · 247 阅读 · 0 评论 -
LeetCode 242. 有效的字母异位词(java)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若s 和 t中每个字符出现的次数都相同,则称s 和 t互为字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t仅包含小写字母来源:力扣(LeetCod...原创 2022-05-15 08:38:46 · 242 阅读 · 0 评论 -
LeetCode 383. 赎金信(java)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = "a", magazine = "b"输出:false示例 2:输入:ransomNote = "aa", magazine = "ab"输出:false示例 3:输入:ran原创 2022-05-15 08:35:26 · 352 阅读 · 0 评论 -
LeetCode 387. 字符串中的第一个唯一字符(java)
给定一个字符串s,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1。示例 1:输入: s = "leetcode"输出: 0示例 2:输入: s = "loveleetcode"输出: 2示例 3:输入: s = "aabb"输出: -1提示:1 <= s.length <= 105s只包含小写字母来源:力扣(LeetCode)链接:https://leetcode.cn/problems/first-unique...原创 2022-05-15 08:26:31 · 147 阅读 · 0 评论 -
LeetCode 73. 矩阵置零(java)
给定一个m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]提示:m == matrix.lengthn == ma..原创 2022-05-14 08:46:13 · 145 阅读 · 0 评论 -
LeetCode 36. 有效的数独(java)
请你判断一个9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。空白格用'.'表示。示例 1:输入:board =[["5","3",".",".","7",".",".","...原创 2022-05-14 08:11:00 · 196 阅读 · 0 评论 -
LeetCode 121. 买卖股票的最佳时机(java)
给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注...原创 2022-05-13 11:43:07 · 149 阅读 · 0 评论 -
LeetCode 350. 两个数组的交集 II(java)
给你两个整数数组nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]提示:1 <= nums1.length, nums2.le..原创 2022-05-13 11:41:58 · 106 阅读 · 0 评论 -
LeetCode 566. 重塑矩阵(java)
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:mat = [[1,2],[3,4..原创 2022-05-13 11:29:30 · 96 阅读 · 0 评论 -
LeetCode 118. 杨辉三角(java)
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2:输入: numRows = 1输出: [[1]]提示:1 <= numRows <= 30来源:力扣(LeetCode)链接:https://leetcode.cn/problems/pa...原创 2022-05-13 11:28:27 · 125 阅读 · 0 评论 -
LeetCode 566. 重塑矩阵(java)
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i = 0; int j = 0; List<Integer> list = new ArrayList<>(); while (i != m && j != n) { if (nums1[i] < num.原创 2022-05-13 10:28:20 · 179 阅读 · 0 评论 -
LeetCode 217. 存在重复元素
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。示例 1:输入:nums = [1,2,3,1]输出:true示例 2:输入:nums = [1,2,3,4]输出:false示例3:输入:nums = [1,1,1,3,3,4,3,2,4,2]输出:true提示:1 <= nums.length <= 105-109 <= nums[i] <= 109...原创 2022-05-11 22:51:16 · 159 阅读 · 0 评论 -
LeetCode 1. 两数之和(java)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], targ原创 2022-05-11 22:49:26 · 103 阅读 · 0 评论 -
LeetCode 88. 合并两个有序数组(java)
给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 = [1,.原创 2022-05-11 22:48:14 · 178 阅读 · 0 评论