数组
Jupiter!
这个作者很懒,什么都没留下…
展开
-
leetcode532--数组中的K-diff数对
题目描述给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只应返回不同的数对的数量。示例 2:输入:[1, 2, 3, 4, 5], k = 1输出: 4解释: 数组原创 2020-05-13 10:30:18 · 137 阅读 · 0 评论 -
leetcode485--最大连续1的个数
题目描述给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.题解只需要遍历一次,遇到1就计数加1,遇到零就比较max存储上一次计数的值,并让计数加1即可,遍历完了再最后比较一次即可。class Solution { public int findMaxConsecutiveOnes(int[] nums) { int n=0; int原创 2020-05-13 10:11:26 · 111 阅读 · 0 评论 -
leetcode448--找到所有数组中消失的数字
题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。方法1首先我想到的方面是建立一个比这个数组刚好大1的数组,然后将现有数组中的每个值作为新数组的下标,并使新数组对应的值+1,最后返回新数组中值为0的下标即可。class Solution {原创 2020-05-12 17:01:05 · 165 阅读 · 0 评论 -
leetcode414--第三大的数
题目描述给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回第三大的数,是指第...原创 2020-04-28 20:09:48 · 132 阅读 · 0 评论 -
leetcode283--移动零
题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。题解设定一个下标值从0开始,对数组遍历,不是0的就放入下标所在处,并使得下标值加1,直到遍历完数组,最后将数组中下标值之后的所有数设为0。cla...原创 2020-04-24 12:20:26 · 94 阅读 · 0 评论 -
leetcode268--缺失数字
题目描述给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8方法一这个方法比较好想到,就是比较占用额外空间。可以建立一个新的数组,大小刚好比现有的数组大1,然后循环现有数组,将数组中的每个值作为新数组的下标,将其对应值...原创 2020-04-24 10:26:37 · 115 阅读 · 0 评论 -
leetcode217、219、220--存在重复元素I、II、III
I题目描述给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: trueI题解这道题最先想到的方法就是双重循...原创 2020-04-23 16:03:58 · 104 阅读 · 0 评论 -
leetcode189--旋转数组
题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [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:输入: [-1,-100,3,99...原创 2020-04-22 16:00:59 · 160 阅读 · 0 评论 -
leetcode169--多数元素
题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2题解这道题可以这么考虑:从第一个数开始count=1,遇到相同的就+1,遇到不同的就-1,减到0就换个数开始计...原创 2020-04-22 15:16:14 · 112 阅读 · 0 评论 -
leetcode121、122--买股票的最佳时机I、II
题目I描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 ...原创 2020-04-21 18:01:41 · 138 阅读 · 0 评论 -
leetcode118、119--杨辉三角I、II
题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]题解首先放上三角形的变形表示:帕斯卡三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1...原创 2020-04-21 17:19:20 · 153 阅读 · 0 评论 -
leetcode88--合并两个有序数组
题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3num...原创 2020-04-21 11:27:52 · 150 阅读 · 0 评论 -
leetcode66--加一
题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。题解...原创 2020-04-20 12:47:38 · 127 阅读 · 0 评论 -
leetcode53--最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。题解这个方法是根据规律来找出的,由于寻找最大子序列,所以分两种情况。当数组全都为负数时,应该只返回最大的数即可。当有正有负时,应该要保证返...原创 2020-04-19 12:06:35 · 74 阅读 · 0 评论 -
leetcode35--搜索插入位置
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0题解...原创 2020-04-19 11:48:36 · 70 阅读 · 0 评论 -
leetcode27--移除元素
题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元...原创 2020-04-19 11:40:55 · 88 阅读 · 0 评论 -
leetcode26--删除排序数组中的重复项
题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2...原创 2020-04-19 11:27:10 · 108 阅读 · 0 评论