![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Array
小陈大人
没有对象那就new一个
展开
-
169. Majority Element
原题题目描述:找出一个数组中出现超过n/2次的元素(一定有)两种技巧: 一种是把数组排好序,中位数即为所求擂台打架法,具体看代码方法一class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/2...原创 2018-08-14 13:08:13 · 85 阅读 · 0 评论 -
35. Search Insert Position
原题题目描述:给定排序数组和目标值,如果找到目标,则返回索引。如果没有,请返回索引按顺序插入的索引。您可以假设数组中没有重复项。思路:二分查找class Solution { public int searchInsert(int[] nums, int target) { int n=nums.length; int right=n; ...原创 2018-08-16 12:15:13 · 236 阅读 · 0 评论 -
747. Largest Number At Least Twice of Others
原题题目描述: 要你判断具有唯一最大值的数组中最大值是否至少为其他元素的2倍大,是则返回其下标,不是返回-1思路:可以一次遍历找出数组中的最大值和次大值,判断最大值是否大于次大值的两倍即可class Solution { public int dominantIndex(int[] nums) { int max1=-1; int max2...原创 2018-08-16 11:40:51 · 162 阅读 · 0 评论 -
53. Maximum Subarray
原题题目描述:定一个整数数组nums,找到具有最大总和并返回其总和的连续子数组(包含至少一个数字)。思路:这个典型的动态规划题(dp) 定义两个变量,一个变量用来记录下标移到当前位置时的最大和,而这个做法就是当前元素的值加前一个位置的最大和,若这个最大和<0,则当前元素+0(止损),若前一个位置的最大和>0,则当前位置元素值与之相加,结果就为现在位置的最大和另一个变量则时刻...原创 2018-08-16 11:02:51 · 107 阅读 · 0 评论 -
118. Pascal's Triangle
原题题目描述:构造如下三角形 思路:遍历行和列,每一层新建一个ArrayList,在行列号及列为0的地方向list里面填1,其他位置的值是其上一行同列及上一行往左偏一列的两个值之和,这两个值要从另一个l结果集合中取得,每一行的Arraylist构建完成后,丢进最终的结果集合中,最后返回class Solution { public List<List<Int...原创 2018-08-16 00:42:40 · 92 阅读 · 0 评论 -
27. Remove Element
原题题目描述:在数组中删除给定的元素,并返回新的数组长度思路:看代码class Solution { public int removeElement(int[] nums, int val) { int begin=0; for(int i=0;i<nums.length;i++){ if(nums[i]!=...原创 2018-08-15 23:32:57 · 77 阅读 · 0 评论 -
674. Longest Continuous Increasing Subsequence
原题题目描述:返回数组中最大连续递增序列的元素个数思路:定义一个计数器,当数组中后一个元素比前一个元素大,计数器自增长,同时定义一个最大长度变量,和计数器每次取较大的那个,当然若不是递增,则把计数器重置为1class Solution { public int findLengthOfLCIS(int[] nums) { if(nums.length==0...原创 2018-08-15 23:19:32 · 122 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
原题题目描述:给一个股票价格数组,要你得到最大利益(最小价格买进之后,最大价格出售)思路:定义两个变量,一个累加记录相邻价格可赚利益差价,当差价<0时则置0,另一个变量存放当前最大差价class Solution { public int maxProfit(int[] prices) { int maxAll=0; int maxN...原创 2018-08-15 22:17:32 · 102 阅读 · 0 评论 -
746. Min Cost Climbing Stairs
原题题目描述:在楼梯上,每i步,cost[i]分配了一些非负成本(0索引)。一旦您支付了费用,您可以爬一到两步。您需要找到最低成本才能到达最高层,您可以从索引为0的步骤开始,也可以从索引为1,求上楼顶的最小费用思路: 要到达当前位置,最小费用就是将当前位置费用与前两个位置的最小费用之和,最后楼顶前两个楼梯费用的最小值便是答案class Solution { public ...原创 2018-08-15 21:20:23 · 110 阅读 · 0 评论 -
628. Maximum Product of Three Numbers
原题题目描述:在一个有正有负的数组中,返回3个数的最大乘积思路:一次遍历找出最大的3个数和最小的两个数class Solution { public int maximumProduct(int[] nums) { int max1,max2,max3,min1,min2; max1=max2=max3=Integer.MIN_VALUE;...原创 2018-08-15 17:54:25 · 110 阅读 · 0 评论 -
268. Missing Number
原题题目描述:长为n的数组,元素值为0~n,且不重复,求你找出未曾出现的那个数字思路:借助XOR异或操作的特性即a^b^b=a的骚操作是最快的移位实现int missingNumber(int* nums, int numsSize) { int res=numsSize; for(int i=0;i<numsSize;i++){ ...原创 2018-08-15 16:46:02 · 156 阅读 · 0 评论 -
830. Positions of Large Groups
原题题目描述:给你一个字符串,输出连续出现3次及以上的字符的首尾下标(注:是连续出现的位置)思路定义首尾指针,初始化都指向0下标尾指针遍历整个字符串,当首尾字符相同时,则尾指针向前走,当走到首尾字符不同时,计算首尾相隔距离当距离>=3,则把这组首尾下标添加到结果集中更新首指针到尾指针的位置重复以上步骤,直到尾指针遍历完整个字符串class Solution {pub...原创 2018-08-15 08:39:49 · 136 阅读 · 0 评论 -
661. Image Smoother
原题题目描述:给你一个二维数组,每个元素的值要你按照以他为中心的8个值外加自己的值求平均值,并填在元素位置上,其中有些位置没有8个邻居,那么就找出尽可能多的邻居算平局值(包括自身),按照这个方法最终返回新矩阵思路: 先写一个判断数组下标是否越界的函数然后,遍历数组时,每个位置i,j,按照i和j分别上下左右共8个方向偏移,对每次偏移判断是否越界,由此可找出有效邻居的个数,总和,最终得到平...原创 2018-08-15 02:38:46 · 184 阅读 · 0 评论 -
697. Degree of an Array
原题题目描述:给定非空整数非负整数nums,该数组的度数被定义为其任何一个元素的最大频率。你的任务是找到一个(连续的)子阵列的最小可能长度nums,其具有相同的度数nums。思路定义两个map集合,一个用来记录数组各元素的首次出现的下标,另一个map用来记录每个元素出现的频率时刻更新degree,找到最大的度数,并同步更新最小长度minlen当degree与另一个元素的频率相同时选...原创 2018-08-15 01:09:52 · 82 阅读 · 0 评论 -
167. Two Sum II - Input array is sorted
原题题目描述:在有序数组中返回数组值相加为目标值的两个下标思路:一左一右的值相加和目标值大小作比较,然后根据结果,缩小左右位置,直到相等class Solution { public int[] twoSum(int[] numbers, int target) { int l=0; int r=numbers.length-1; ...原创 2018-08-14 23:19:28 · 93 阅读 · 0 评论 -
217. Contains Duplicate
原题题目描述:判断一个数组的元素是否有重复项思路:用个set集合,遍历数组时,set集合中不存在的数则加入,若set中存在则返回falseclass Solution { public boolean containsDuplicate(int[] nums) { final Set<Integer> distinct = new HashS...原创 2018-08-14 22:47:11 · 123 阅读 · 0 评论 -
122. Best Time to Buy and Sell Stock II
原题题目描述:假设您有一个数组,其中第i 个元素是第i天给定股票的价格。设计算法以找到最大利润。您可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:您不能同时进行多笔交易(即,您必须在再次购买之前卖出股票)。思路:只需要累加相邻两天,明天比今天高出的价格即可(即只要明天比今天的价格高,就相减累加到利润中)int maxProfit(int* prices, in...原创 2018-08-14 21:41:56 · 74 阅读 · 0 评论 -
717. 1-bit and 2-bit Characters
原题题目描述:有两个特殊字符,第一个字符可以用一位表示0。第二个字符可以用两位(10或11)表示。现在给出一个由几位表示的字符串。返回最后一个字符是否必须是一位字符。给定的字符串将始终以零结尾思路:从左到右遍历,遇到0下标增1,遇到2下标增2,然后判断最后下标若为n-1则返回truebool isOneBitCharacter(int* bits, int bitsSize) {...原创 2018-08-14 20:50:30 · 144 阅读 · 0 评论 -
66. Plus One
原题题目描述: 给定表示非负整数的非空数字数组,加上整数的1。存储数字使得最高有效数字位于列表的开头,并且数组中的每个元素包含单个数字。您可以假设整数不包含任何前导零,除了数字0本身思路:从后往前遍历数组,只要元素不为9,那该位置元素加1,然后返回该数组即可,但若元素是9,那把该位置的元素置0,还有种极端情况,当原数组所有的元素都是9时,则要新建一个数组,长度比原数组大1,第一个位置为1,...原创 2018-08-16 12:57:31 · 404 阅读 · 0 评论