LeetCode
欣21
未来属于那些相信梦想,并愿意为之付诸行动的人。
展开
-
LeetCode -202 快乐数
简单题编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是快乐数就返回true ;不是,则返回 false 。链接LeetCode -202 快乐数代码实现class Solution { public boolean isHappy(int n) { Set<原创 2022-05-22 15:27:53 · 887 阅读 · 0 评论 -
LeetCode -209 长度最小的子数组
难度:中等给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥target 的长度最小的连续子数组[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回0。题目链接LeetCode -209 长度最小的子数组代码实现class Solution { //滑动窗口 public int minSubArrayLen(int target, int[] nums) {原创 2022-05-22 15:07:47 · 944 阅读 · 0 评论 -
LeetCode -242 有效的字母异位词
难度:简单给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。题目链接LeetCode -242 有效的字母异位词代码实现class Solution { public boolean isAnagram(String s, String t) { if(s==null||t==null){ return false;原创 2022-05-22 14:45:51 · 139 阅读 · 0 评论 -
LeetCode -349 两个数组的交集
难度:简单给定两个数组 nums1 和 nums2 ,返回它们的交集 。输出结果中的每个元素一定是唯一 的。我们可以不考虑输出结果的顺序 。题目链接LeetCode -349 两个数组的交集代码实现class Solution { public int[] intersection(int[] nums1, int[] nums2) { if (nums1 == null || nums2 == null) { return null;原创 2022-05-22 11:07:07 · 983 阅读 · 0 评论 -
LeetCode -167 两数之和 II - 输入有序数组
难度:中等给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的原创 2022-05-17 21:17:28 · 293 阅读 · 0 评论 -
LeetCode -26 删除有序数组中的重复项
难度:简单给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。题目链接原创 2022-05-14 11:45:37 · 132 阅读 · 0 评论 -
LeetCode -682 棒球比赛
难度:简单你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x"+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。"D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效原创 2022-04-30 17:34:15 · 117 阅读 · 0 评论 -
LeetCode -203 移除链表元素
难度:简单给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。题目链接LeetCode -203 移除链表元素实现class Solution { public ListNode removeElements(ListNode head, int val) {ListNode dummyHead = new ListNode(Integer.MIN_VALUE); dummyHead.原创 2022-04-30 17:29:43 · 642 阅读 · 0 评论 -
LeetCode -209 长度最小的子数组
难度:中等给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。题目链接LeetCode -209 长度最小的子数组java实现class Solution { public int minSubArrayLen(int target, int[] nums) { int原创 2022-04-01 20:24:28 · 449 阅读 · 0 评论 -
LeetCode -283 移动零
难度:简单给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。题目链接LeetCode -283 移动零java实现遍历public void moveZeroes(int[] nums) { if (nums == null || nums.length == 0) { return; } //第一次遍历的时候,j指针记录非0原创 2022-03-31 23:42:30 · 173 阅读 · 0 评论 -
LeetCode -88合并两个有序数组
难度:简单给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。题目链接LeetCode -88合并两原创 2022-03-29 10:28:10 · 86 阅读 · 0 评论 -
LeetCode -75颜色分类
难度:中等给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。题目链接LeetCode -75颜色分类java实现class Solution { public void sortColors(int[] nums) { if (nums == null || nums.le原创 2022-03-27 21:52:10 · 841 阅读 · 0 评论 -
LeetCode -27移除元素
难度:简单给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。题目链接LeetCode -27移除元素 java实现public class Solution27 { public int removeElement(int[] nums, int val) {原创 2022-03-27 21:44:14 · 363 阅读 · 0 评论