![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数组
数组
千叶真尹
这个作者很懒,什么都没留下…
展开
-
leetcode15. 三数之和
给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]思路:排序,一次遍历+双指针注意点:需要去重有三个点需要去重...原创 2022-02-04 17:37:25 · 67 阅读 · 0 评论 -
leetcode双指针11盛最多水的容器
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例 2:输入..原创 2022-02-04 16:42:35 · 69 阅读 · 0 评论 -
leetcode数组118. 杨辉三角
给定一个非负整数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:注意这种嵌套写法,不一定要分开来写,可以一步到位,按照题目返回的类型写ArrayList<List<Integer>>...原创 2022-01-25 17:38:33 · 147 阅读 · 0 评论 -
leetcode数组66加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]思路:首先判断.原创 2022-01-17 10:22:10 · 61 阅读 · 0 评论 -
leetcode排序506相对名次
给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:名次第 1 的运动员获金牌 "Gold Medal" 。名次第 2 的运动员获银牌 "Silver Medal" 。名次第 3 的运动员获铜牌 "Bronze Medal" 。从名次第 4 到第 n 的运动员,只能获得他们的名原创 2022-01-07 14:30:57 · 70 阅读 · 0 评论 -
leetcode排序414第三大的数
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。示例 1:输入:[3, 2, 1]输出:1解释:第三大的数是 1 。示例 2:输入:[1, 2]输出:2解释:第三大的数不存在, 所以返回最大的数 2 。示例 3:输入:[2, 2, 3, 1]输出:1解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。思路:排序+反转+遍历注意遍历的原创 2022-01-07 09:59:00 · 56 阅读 · 0 评论 -
leetcode389找不同
给定两个字符串 s 和 t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "aea"输出:"a"思路1:两个字符串中...原创 2022-01-06 10:19:35 · 261 阅读 · 0 评论 -
leetcode268丢失的数字
给定一个包含 [0, n]中n个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 3:...原创 2022-01-06 09:32:03 · 510 阅读 · 0 评论 -
leetcode242有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false思路:本题的本质是比较出现的字符是否相同,并且每个字符出现的次数是否相同1.将两个字符串转换为字符数组2.比较两个字符数组的长度,不相等,直接f原创 2022-01-06 09:14:04 · 133 阅读 · 0 评论 -
leetcode排序169多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2思路1:hashmappublic class majorityelement { public int majorityElement(int[] nums) { int result = nu.原创 2022-01-04 17:04:12 · 1614 阅读 · 0 评论 -
leetcode数组136只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4思路:此题有多种解法,当时自己只想到一种思路1:使用 hashmap,注意 hashmap.get(key) 方法,该方法返回对应的 value 值,如果该 key 存在,返回其对应的 value,如果该值不存.原创 2021-12-01 19:31:05 · 86 阅读 · 0 评论 -
leetcode数组557反转字符串中的单词III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"思路:1.将字符串拆分为字符串数组2.对于每一个字符串数组,将其封装为 StringBuffer 对象,可以调用 reverse() 方法,将字符串反转,然后调用 toString() 方法,将其还原为字符串3.调用 String.join() ,拼接字符串Str.原创 2021-11-30 11:24:56 · 150 阅读 · 0 评论 -
leetcode数组283移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:使用双指针,快指针用来遍历数组,寻找非零项,慢指针负责定位修改的位置每当快指针找到一个非零值时,交换快指针位置的值和慢指针位置的值,并将慢指针向前移动一位class Solution { public void moveZeroes(原创 2021-11-29 15:01:58 · 134 阅读 · 0 评论 -
leetcode数组189轮转数组
给你一个数组,将数组中的元素向右轮转 k个位置,其中k是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转 1 步: [99,...原创 2021-11-26 15:51:01 · 168 阅读 · 0 评论 -
leetcode数组350两个数组的交集II
给定两个数组,编写一个函数来计算它们的交集。示例 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 nums2,分别定义两个指针,click1 click2。初始时,都在索引0处。然后比较指针指的两个数是否相等。如果nums1指的数小,就将n原创 2021-11-25 20:36:51 · 165 阅读 · 0 评论 -
leetcode数组35搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6], target = 0输出: 0使用二分法进行查找,第一次写二分法,写的是在很差原创 2021-11-18 11:22:51 · 285 阅读 · 0 评论 -
leetcode数组217存在重复元素
给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false思路:使用Arrays.sort(arr)对数组进行排序,然后看相邻的位置是否有相同的元素class Solution { public boolean containsDuplicate(int[] nums) ...原创 2021-11-22 10:53:20 · 185 阅读 · 0 评论 -
leetcode数组27移除元素
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的...原创 2021-11-17 21:29:14 · 162 阅读 · 0 评论 -
leetcode数组26删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。class Solution { public int remov原创 2021-11-16 17:10:21 · 228 阅读 · 0 评论 -
leetcode数组1两数之和
leetcode数组第一题 两数之和给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class S...原创 2021-11-15 17:47:50 · 418 阅读 · 0 评论