数组
泽阳Alex
热爱摄影,热爱生活
展开
-
【算法】街道种树
[Description]某条街道两边分别种植了一排数木,并按如下编号:1 3 5 7 9 ... 45 47 49 ... 992 4 6 8 10 ... 46 48 50 ... 100但是有一些数木被砍去,希望你能找出一边最长的连续的大树。[Input] 输入砍掉的树编号9 15 27 35 6[Output] 输出最大长度的起始位置和最大长度8 47[代码实现]时间复杂度O(n),额外空间复杂度O(1) /** * 时间复杂度O(Max原创 2020-07-11 15:00:49 · 1127 阅读 · 2 评论 -
【1252】奇数值的单元格的数目
题目(难度:简单):代码思想:单纯的暴力解决,需要注意的是区分indices的对行还是对列操作,这里是对行队列交替执行加1操作,用一个boolean类型的flag区分一下。代码实现:public int oddCells(int n, int m, int[][] indices) { int[][] array = new int[n][m]; ...原创 2019-11-25 08:22:57 · 187 阅读 · 0 评论 -
【1】两数之和(已优化)
题目(难度:简单):给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。例如:给定 nums = [2, 7, 11, 15], target = 9.解决办法(暴力):public class Solution01{ ...原创 2019-08-26 19:58:31 · 267 阅读 · 0 评论 -
【9】回文数(已优化)
题目(难度:简单):判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true解法思想:不采用传统思想,即把 int数转换为字符串,再通过折半对比或倒序判断是否是回文数。通过除法和取余,将数字直接倒序,再与原数进行对比,返回结果。代码实现:public boolean isPalindrome(...原创 2019-08-29 16:33:07 · 209 阅读 · 0 评论 -
【15】三数之和(已优化)
题目(难度:中等):给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]...原创 2019-09-02 19:06:24 · 168 阅读 · 0 评论 -
【26】【80】删除数组中的重复项 I、II(已优化)
题目26(难度:简单):给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度...原创 2019-09-11 16:31:03 · 209 阅读 · 0 评论 -
【66】加一(已优化)
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 432...原创 2019-10-08 14:30:26 · 105 阅读 · 1 评论 -
【75】颜色分类(已优化)
题目(难度:中等):给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]代码思想:归并排序代码实现...原创 2019-10-08 14:52:52 · 70 阅读 · 0 评论 -
【209】长度最小的子数组(已优化)
题目(难度:中等):给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和≥ s的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。解题:利用滑动窗口,设置左边界变量l,计算 l 到 i下标之间的...原创 2019-10-21 19:39:31 · 119 阅读 · 0 评论 -
【153】寻找旋转排序数组中的最小数字
题目(难度:中等):假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1代码思想:除去临界值情况,正常有以下两种情况:数组没有发生旋转 数组发生了旋转根据题目...原创 2019-11-09 15:26:40 · 77 阅读 · 0 评论 -
【581】最短连续子数组
题目(难度:简单):给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。代码思想:试想,数组中存在零...原创 2019-11-09 17:08:16 · 310 阅读 · 0 评论 -
【560】和为k的子数组
题目(难度:中等):给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。代码思想:代码实现: public int subarraySum(int[] nums, int k) { int len =...原创 2019-11-09 17:11:39 · 87 阅读 · 0 评论