数组
我不叫施展诶
这个作者很懒,什么都没留下…
展开
-
数组 移动零
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。要求:① 必须在原数组上操作,不能拷贝额外的数组。② 尽量减少操作次数。示例:输入: [0,1,0,3,12] 输出: [1,3,12,0,0]解法:双指针public class MoveZeroes { public static void moveZeroes(int[] nums) { int indexNow = 0; // 用来赋值的指针 ...原创 2021-01-18 21:11:45 · 137 阅读 · 0 评论 -
数组 求两个数组的交集
题目:给定两个数组,编写一个函数来计算它们的交集。示例:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2]解法:排序 双指针 import java.util.Arrays;//题目:给定两个数组,编写一个函数来计算它们的交集。public class Intersect { public int[] intersect(int[] nums1, int[] nums2){ Arrays.sort(nums1); // 先..原创 2021-01-18 11:30:41 · 760 阅读 · 0 评论 -
数组 只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例:输入 [4,1,2,1,2] 输出 4解法上述三种解法都需要额外使用 O(n) 的空间,其中 n 为数组长度。如果要求使用线性时间复杂度和常数空间复杂度,上述三种解法显然都不满足要求。要求: 时间复杂度:O(n),其中 n 为数组长度。只需对数组遍历一次。 空间复杂度:O(1)。 解法:class FindSingleNum { publ..原创 2021-01-14 15:01:37 · 132 阅读 · 0 评论 -
数组 旋转数组
题目:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例:输入 nums = [1,2,3,4,5,6,7], k = 3 输出 [5,6,7,1,2,3,4]解法:arraycopy(原数组名称,原数组起始下标,目标数组名称,目标数组起始下标,截取长度)class Solution { public void rotate(int[] nums, int k) { int l = nums.length; int[] arr...原创 2021-01-14 10:40:23 · 116 阅读 · 0 评论 -
数组 存在重复元素
题目:给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例:nums = [1,2,3,1], 输出:true解法:①哈希表:根据关键码值(key value)直接进行访问的数据结构。通过把关键码值映射到表中一个位置来访问记录,以加快查找速度。 用时 9msimport java.util.HashMap;class Solution{ public bo...原创 2021-01-13 18:19:13 · 611 阅读 · 1 评论 -
数组 删除排序数组中的重复项
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:给定数组 nums = [1,1,2], 输出 [1,2]解法:双指针class Solution { public int removeDuplicates(int[] nums) { if(nums.length == 0) return 0;...原创 2021-01-13 17:56:58 · 91 阅读 · 0 评论