刷题——Array
想当厨子的程序媛
前期追深度,否则会华而不实,后期追广度,否则会坐井观天;
展开
-
【Array-easy】832. Flipping an Image 反转数组并且0变1
1. 题目原址https://leetcode.com/problems/flipping-an-image/2. 题目描述3. 题目大意给定一个二维数组,将每一行元素反转,反转后将元素中的 0 变为 1, 将 1 变为 04. 解题思路签到题5. AC代码class Solution { public int[][] flipAndInvertImage(int[][]...原创 2019-06-12 21:33:35 · 293 阅读 · 0 评论 -
【Array-easy】35. Search Insert Position 找到需要插入元素的位置
1. 题目原址https://leetcode.com/problems/search-insert-position/2. 题目描述3. 题目大意给定一个升序的数组和一个值,返回这个值应该插入的数组的下标位置4. 解题思路因为给定的数组是升序数组,所以如果当前值大于给定的值,那么当前值的位置就是需要返回的下标位置如果到最后数组中没有元素大于给定的值,就应该把这个值插入到数组的最...原创 2019-06-03 21:55:41 · 150 阅读 · 0 评论 -
【String-easy】217. Contains Duplicate 判断给定的数组是否有重复的元素
1. 题目原址https://leetcode.com/problems/contains-duplicate/2. 题目描述3. 题目大意给定一个一维数组,判断数组中是否有重复的元素4. 解题思路比较流氓的做法就是使用java的Set集合来判断。5. 解题思路class Solution { public boolean containsDuplicate(int[] ...原创 2019-06-15 22:01:46 · 183 阅读 · 0 评论 -
【Array-easy】268. Missing Number 找到给定数组中缺少的那个元素,只缺少了一个元素
1. 题目原址https://leetcode.com/problems/missing-number/2. 题目描述3. 题目大意给定一维数组,数组中的元素是 0…n,数组中只缺少一个元素,找到缺少的那个元素。4. 解题思路因为数组如果不缺少元素应该是从0 到 n,缺少了一个元素,那就可以先计算不缺少元素的时候的总和Nsum,然后再计算一下给定的缺少元素的数组的总和sum。再使用N...原创 2019-06-15 22:09:40 · 244 阅读 · 0 评论 -
【Array-easy】189. Rotate Array 反转数组
1. 题目原址https://leetcode.com/problems/rotate-array/2. 题目描述3.题目大意给定一个数组,和一个整数k, 将第k个数后面的数移动到数组的前面4. 解题思路采用三步旋转法先将前k个数(包括第k个数)逆序再将第k个数后面的数(不包括第k个数)逆序最后将整个数组逆序5. AC代码class Solution { pub...原创 2019-06-11 11:02:28 · 167 阅读 · 0 评论 -
【Array-easy】414. Third Maximum Number 找到数组中第三大的数
1. 题目原址https://leetcode.com/problems/third-maximum-number/2. 题目描述3. 题目大意给定一个数组,返回数组中第三大的元素4. 解题思路定义三个变量,分别存储数组中前三大的元素。通过增强for循环来遍历数组中的元素,然后根据 if 语句来判断当前元素是否是前三大的元素5. AC代码class Solution { ...原创 2019-06-11 14:52:31 · 202 阅读 · 0 评论 -
【Array-easy】561. Array Partition I 数组分成n对,然后从每一对里面拿小的那个数字,把所有的加起来sum,使sum最大
1. 题目原址https://leetcode.com/problems/array-partition-i/2. 题目描述3. 题目大意给定一个数组,数组的长度是2n,将这个数组组成n对,每一对中找到最小的那个数,将这n个数相加得到sum,使得sum最小。4. 解题思路数组的长度是2n,需要将数组组成 n 对,就相当于将数组中的元素两个两个匹配在一起,想要找到最小和,那就先将数组中...原创 2019-06-11 15:00:16 · 281 阅读 · 0 评论 -
【Array-easy】566. Reshape the Matrix 将给定的二维数组 变成 行数为 r,列数为 c 的二维数组
1. 题目原址https://leetcode.com/problems/reshape-the-matrix/2. 题目描述3. 题目大意给定一个二维数组,和一个r和c,分别表示将给定的二维数组转换的行数和列数,即将原来的数组转换为行数为 r,列数为 c 的数组4. 解题思路先判断数组中的元素是否是 r*c 个元素然后定义一个一维数组 temp[r][c], 用来存储二维数组中...原创 2019-06-11 15:23:15 · 220 阅读 · 0 评论 -
【Array-easy】628. Maximum Product of Three Numbers 返回三个元素乘积最大值
1. 题目原址https://leetcode.com/problems/maximum-product-of-three-numbers/2. 题目描述3. 题目大意给定一个数组,返回数组中三个元素乘积的最大值4. 解题思路因为数组可能存在负数,两个负数相乘就是整数,所以不能只记录最大的三个数,还要记录最小的两个数。定义五个变量,分别存储最大的三个数,和最小的两个数增强for...原创 2019-06-11 15:34:53 · 171 阅读 · 0 评论 -
【Array-medium】442. Find All Duplicates in an Array 找到数组中出现了两次的元素。
1. 题目原址https://leetcode.com/problems/find-all-duplicates-in-an-array/2. 题目描述3. 题目大意找到数组中出现了两次的元素。4. 解题思路因为题意说数组的元素值的范围是: 1 ≤ a[i] ≤ n (n = size of array),。 所以,我们将数组值对应到新数组的元素下标,出现一次,值就+1,最后判断...原创 2019-06-17 13:35:30 · 273 阅读 · 0 评论 -
【List-medium】725. Split Linked List in Parts 给定一个链表和一个数字k,要将原链表分开,分为连续的k个部分。
1. 题目原址https://leetcode.com/problems/split-linked-list-in-parts/2. 题目描述3. 题目大意给定一个链表和一个数字k,要将原链表分开,分为连续的k个部分。4. 解题思路首先要得到原链表的长度,以及计算每一部分要存储多少元素,和当前元素可不可以平均分到k个部分,如果不能,那么多出来的元素要放到变量remaining中,用...原创 2019-06-17 14:05:45 · 242 阅读 · 0 评论 -
【Array-easy】643. Maximum Average Subarray I 连续长度为k的子数组,使得他们的和最大
1. 题目原址https://leetcode.com/problems/maximum-average-subarray-i/2. 题目描述3. 题目大意给定一个字符数组,和一个整数k, 找到连续长度为k的子数组,使得他们的和最大。4. 解题思路先将前 k 个数的和求出来。然后遍历数组中的元素,从第k个元素开始,每次加一个元素,并且减去最前面已经累加的一个元素,这样保证sum中...原创 2019-06-12 11:10:02 · 932 阅读 · 0 评论 -
【Array-easy】697. Degree of an Array 阿里
1. 题目原址https://leetcode.com/problems/degree-of-an-array/2. 题目描述3. 题目大意给定一个数组,degree为一个数组中的元素出现频率最大值。要求寻找这个数组中出现频率最大的元素的最小距离。4. 解题思路定义两个数组,一个数组degree存储的是这个元素出现的频率, 另一个数组 head存储的是元素对应的最近的下标位置首先...原创 2019-06-12 13:00:23 · 144 阅读 · 0 评论 -
【Array-easy】747. Largest Number At Least Twice of Others 最大数是其他数两倍以上
1. 题目原址https://leetcode.com/problems/largest-number-at-least-twice-of-others/2. 题目描述3. 题目大意找到数组中最大的数字,如果他比其他所有的数组都大2倍以上,则返回最大元素的索引值,否则返回 - 14. 解题思路首先找到数组中的最大元素和第二大元素以及最大元素的下标最后比较最大元素是否是第二大元素...原创 2019-06-12 13:28:03 · 110 阅读 · 0 评论 -
【String-easy】38. Count and Say
1. 题目原址https://leetcode.com/problems/count-and-say/2. 题目描述3. 题目大意读取数组并且将读到的数组按照读出来的音存储。4. 解题思路使用StringBuilder来解题,并且定义一个计数器count来统计每个连续的数的个数。5. AC代码class Solution { public String countAndS...原创 2019-06-14 15:36:15 · 128 阅读 · 0 评论 -
【Array-easy】167. Two Sum II - Input array is sorted 和为定值的两个数的下标
1. 题目原址https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/2. 题目描述3. 题目大意给定一个升序数组,和一个目标值,找到数组中的两个数的和等于目标值,然后返回这两个数的下标4. 解题思路签到题。使用两个指针。5. AC代码class Solution { public int[] two...原创 2019-06-14 14:44:02 · 144 阅读 · 0 评论 -
【Array-easy】867. Transpose Matrix 二维数组转置
1. 题目原址https://leetcode.com/problems/transpose-matrix/2. 题目描述3. 题目大意给定一个二维数组,将二维数组转置4. 解题思路签到题5. AC代码class Solution { public int[][] transpose(int[][] A) { int length = A.length;...原创 2019-06-12 22:03:29 · 197 阅读 · 0 评论 -
【Array-easy】888. Fair Candy Swap 交换两个数使得两个数组和相等
1. 题目原址https://leetcode.com/problems/fair-candy-swap/2. 题目描述3. 题目大意给定两个数组,交换数组中的两个元素,使得两个数组的元素和相等4. 解题思路首先分别计算出A和B数组的和,然后计算平均值 avg,平均值就是A和B交换后数组中的和然后一次遍历数组A,遍历到第 i 个数,如果把 A[i] 换掉,那么A中剩余元素的和是:...原创 2019-06-12 22:28:48 · 2203 阅读 · 1 评论 -
【Array-easy】905. Sort Array By Parity 奇数放后面偶数放前面
1. 题目原址https://leetcode.com/problems/sort-array-by-parity/2. 题目描述3. 题目大意给定一个一维数组,将数组中奇数元素放到后面,偶数元素放到前面4. 解题思路签到题使用两个指针5. AC代码class Solution { public int[] sortArrayByParity(int[] A) { ...原创 2019-06-13 10:06:09 · 145 阅读 · 0 评论 -
【Array-easy】914. X of a Kind in a Deck of Cards 给定一副牌
1. 题目原址https://leetcode.com/problems/x-of-a-kind-in-a-deck-of-cards/2. 题目描述3. 题目大意给定一副牌,每张牌上都写着一个整数。此时:你需要选定一个数字X,使得我们可以将整幅牌按照下述规则分为一组或者更多组:规则一:每组有X张牌规则二:组内所有牌上都写着相同的整数仅当你可选的 X >= 2 时,返回...原创 2019-06-13 10:38:14 · 178 阅读 · 0 评论 -
【Array-easy】922. Sort Array By Parity II 奇数放奇数下标偶数放偶数下标
1. 题目原址https://leetcode.com/problems/sort-array-by-parity-ii/2. 题目描述3. 题目大意给定一个数组,其中奇数和偶数各一半,要求返回数组中,奇数索引下标的元素为奇数,偶数索引下标中的元素为偶数。4. 解题思路签到题:两个指针,指针每次移动两个位置。5. AC代码class Solution { public ...原创 2019-06-13 10:51:57 · 272 阅读 · 0 评论 -
【Array-easy】977. Squares of a Sorted Array Easy 有序数组将元素平方使得数组依旧升序
1. 题目原址https://leetcode.com/problems/squares-of-a-sorted-array/2. 题目描述3. 题目大意给定一个有序数组,数组中存在负数,要求将数组中的元素平方后保证数组依旧有序。4. 解题思路定义一个变量 k 作为数组下标,一个变量i前往后遍历,另一个变量j从后往前遍历。5. AC代码class Solution { p...原创 2019-06-13 11:35:05 · 341 阅读 · 0 评论 -
【Array-easy】989. Add to Array-Form of Integer 给一个数组一个元素,将元素加到数组中
1. 题目原址https://leetcode.com/problems/add-to-array-form-of-integer/2. 题目描述3. 题目大意给定一个数组,和一个元素,将元素加到数组中4. 解题思路从后面往前面遍历数组,每一位都加k,然后更新 k 的值,并更跟对应位置的元素的值最后如果 k 不为 0,说明元素的第一位加完溢出了,说明还需要第一位将溢出的k加上就可...原创 2019-06-13 12:10:20 · 260 阅读 · 0 评论 -
【List-medium】2. Add Two Numbers 对应两个元素相加
1. 题目原址https://leetcode.com/problems/add-two-numbers/2. 题目描述3. 题目大意给定两个链表,将链表的对应元素相加,每一位只能存储一个0-9的数,进位向后面进位,然后返回。4. 解题思路通过while进行循环,定义一个中间的大于10的变量作为进位变量,进位变量的进位放到后面。lSum 哟过来存储中间变量5. AC代码cl...原创 2019-06-13 16:52:52 · 200 阅读 · 0 评论 -
【Array-easy】 66. Plus One 将数组中的元素变为整数,然后给整数 + 1 再转换为数组返回
1. 题目原址https://leetcode.com/problems/plus-one/2. 题目描述3. 题目大意将数组中的元素变为整数,然后给整数 + 1 再转换为数组返回4. 解题思路从后往前遍历,如果最后的元素的值小于 9,再进行 + 1 ,如果等于9,那么就需要向前面 + 1,将进位位 置为 1如果是最后一个元素,那么直接将元素值 + 1,如果不是最后一个元素,需要...原创 2019-06-13 17:14:45 · 497 阅读 · 0 评论 -
【Array-easy】 1. Two Sum 两个数相加等于目标值
1. 题目原址https://leetcode.com/problems/two-sum/2. 题目描述3. 题目大意给定一个数组,和一个目标值,返回数组中哪两个数的和等于目标值,返回这两个数的下标4. 解题思路利用【位图】来解题,时间复杂度O(n)定义一个位图数组,数组的长度是 2047每次循环都得到当前值与目标值的差值 different同时每个值都放到对应位图上面,位图...原创 2019-06-13 17:52:10 · 311 阅读 · 0 评论 -
【Array-medium】15. 3Sum 三个数相加等于 0
1. 题目原址https://leetcode.com/problems/3sum/2. 题目描述3. 题目大意给定一个数组,返回所有三个数相加和为0的序列4. 解题思路首先将数组排序如果当前元素大于0,那么就不能存在三个数的和为0的序列,直接返回null即可。为了保证不加入重复的 list,因为是有序的,所以如果和前一个元素相同,只需要继续后移就可以i==0,正常寻找另两个...原创 2019-06-13 18:02:08 · 256 阅读 · 0 评论 -
【Array-medium】16. 3Sum Closest 三个数相加和接近目标值
1. 题目原址https://leetcode.com/problems/3sum-closest/2. 题目描述3. 题目大意给定一个一维数组和一个目标值,返回和最接近目标值的和。4. 解题思路二分法来做。先将一维数组排序然后第一个元素+最后一个元素+中间元素的和与目标值进行比较。按照比较结果继续遍历。5. AC代码class Solution { public...原创 2019-06-14 14:16:54 · 240 阅读 · 0 评论 -
【Array-medium】18. 4Sum 所有四个数的和为目标值的元素
1. 题目原址https://leetcode.com/problems/4sum/2. 题目描述3. 题目大意给定一个一维数组,返回所有四个数的和为目标值的元素4. 解题思路首先进行边界判断对数组进行排序for循环里面,一共有3层循环,每进一层循环就相当于少了一个数相加。因为不包含重复元素,所以如果两个数相等,就直接进入到下一次循环第一次循环:如果四个数的和小于目标值,...原创 2019-06-14 14:31:59 · 165 阅读 · 0 评论 -
【Array-easy】766. Toeplitz Matrix 二维数组判断斜着的每一列是否相等.
1. 题目原址https://leetcode.com/problems/toeplitz-matrix/2. 题目描述3. 题目大意给定一个二维数组,判断数组中的斜着的每一列是否相等4. 解题思路签到题5. AC代码class Solution { public boolean isToeplitzMatrix(int[][] matrix) { if(...原创 2019-06-12 13:39:59 · 181 阅读 · 0 评论