数组
leetcode 数组类型
newler的代码
这个作者很懒,什么都没留下…
展开
-
[238]、除自身以外数组的乘积
题目题目链接给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例1:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度原创 2020-06-09 21:59:41 · 80 阅读 · 0 评论 -
[26]、删除排序数组中的重复项
题目题目链接给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2]函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并原创 2020-06-06 14:15:15 · 70 阅读 · 0 评论 -
[88]、合并两个有序数组
15. [88]、合并两个有序数组题目题目链接给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。你可以假设除了整数 0 之外,这个整数不会以零开头。说明初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例1:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [原创 2020-06-06 00:01:46 · 92 阅读 · 0 评论 -
66、加一
题目题目链接给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。解法这题比较简单,最后一位+1即可,只需要考虑进位的问题,例如999+1,会多一位变成1000。所以最后一原创 2020-06-04 21:49:24 · 93 阅读 · 0 评论 -
15. 三数之和
题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解法一使用暴力求解,初始i=0,j=i+1,k=i+2,然后写三重循环,第三层k从头到尾扫描一遍,每次判断nums[i]+n原创 2020-06-03 23:10:05 · 122 阅读 · 0 评论 -
[1]、两数之和
题目题目链接给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例1:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法第一种解法通过暴力,固定i,移动j扫描一遍数组,每次判断是否条件nums[i]+nums[j] == targe原创 2020-06-03 21:37:24 · 67 阅读 · 0 评论 -
[70]、爬楼梯
题目题目链接假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶解法一通过递推方法1阶台阶: 1种方法,爬一个台阶12原创 2020-06-02 22:00:03 · 88 阅读 · 0 评论 -
盛最多水的容器
题目题目链接给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49解法一通过暴力求解,i不动,依次移动j,通过面积公式Math.min(height[i], height[j]) * (j -原创 2020-06-01 10:21:17 · 115 阅读 · 0 评论 -
[283]、移动零实现
题目leetcode链接给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解法依次遍历,使用双指针i,j,如果遇到为0,i先走,j停下,让i去找到下一个不为0的值,赋值给j所在的位置即num[j] = num[i],i所在的位置为赋值0,即num[i] = 0,当又遇到0时,j又会停下,重新被赋值,以此类推,前面原创 2020-05-28 23:11:09 · 62 阅读 · 0 评论 -
78.子集
子集Subsets题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]题解1results集合先添加一个空子数组,遍历nums。nums每遍历一个值,在results所有...原创 2020-03-14 23:36:29 · 75 阅读 · 0 评论