![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leet数组
ldd儆儆
这个作者很懒,什么都没留下…
展开
-
leet179:最大数
private static class LargerN1umberComparator implements Comparator<String> { @Override public int compare(String a, String b) { String order1 = a + b; String order2 = b ...原创 2020-01-10 11:42:22 · 257 阅读 · 0 评论 -
leet922:按奇偶排序数组 II
申请额外空间public static int[] sortArrayByParityII(int[] A) { int [] ans = new int[A.length]; int i1 = 0; int i2 = 1; for (int j = 0; j <A.length ; j++) { if(A[j]%2==0){ ...原创 2020-01-10 10:57:32 · 235 阅读 · 0 评论 -
leet153:寻找旋转排序数组中的最小值
二分查找public static int findMin(int[] nums) { int len = nums.length; int start = 0; if (len <= 1) return nums[0]; for (int i = 1; i < len; i++, start++) { if (num...原创 2020-01-09 15:45:13 · 110 阅读 · 0 评论 -
leet80:删除排序数组中的重复项 II
public static int removeDuplicates(int[] nums) { int n = nums.length; if(n <= 2) { return n; } int sp = 1; for(int fp = 2; fp < n; fp++) { if(nums[fp...原创 2020-01-09 15:17:49 · 92 阅读 · 0 评论 -
leet75:颜色分类
本问题被称为 荷兰国旗问题,最初由 Edsger W. Dijkstra提出。public static void sortColors(int[] nums) { // 对于所有 idx < i : nums[idx < i] = 0 // j是当前考虑元素的下标 int p0 = 0, curr = 0; // 对于所有 idx > k ...原创 2020-01-09 15:12:51 · 127 阅读 · 0 评论 -
leet48:旋转图像
public static void rotate(int[][] matrix) { int n = matrix.length; for (int i = 0; i <n ; i++) { for (int j = 0; j <n ; j++) { System.out.print(matrix[i][j]+" ");...原创 2020-01-09 14:29:11 · 91 阅读 · 0 评论 -
leet228:汇总区间
public List<String> summaryRanges(int[] nums) { List<String> summary = new ArrayList<>(); for (int i, j = 0; j < nums.length; ++j){ i = j; ...原创 2020-01-09 11:26:12 · 100 阅读 · 0 评论 -
leet162:寻找峰值
for (int i = 0; i <nums.length-1 ; i++) { if(nums[i]>nums[i+1]) return i;}return nums.length -1;public int findPeakElement1(int[] nums) { return search(nums, 0, nums.length -...原创 2020-01-06 19:36:10 · 97 阅读 · 0 评论 -
leet287:寻找重复数
二分查找法public static int findDuplicate(int[] nums) {//4ms int len = nums.length; int left = 0; int right = len; while (left < right) { // int mid = left + (right - left + 1)...原创 2019-12-24 15:44:51 · 105 阅读 · 0 评论 -
leet11:盛最多水的容器
暴力法 public int maxArea(int[] height) {//256ms int maxarea = 0; for (int i = 0; i < height.length; i++) for (int j = i + 1; j < height.length; j++) m...原创 2019-12-19 16:24:01 · 72 阅读 · 0 评论 -
leet167:两数之和 II - 输入有序数组
双指针 public int[] twoSum(int[] numbers, int target) { int i = 0; int j = numbers.length-1; int sum = 0; while(i<j){ sum = numbers[i]+numbers[j]; ...原创 2019-12-16 19:25:39 · 109 阅读 · 0 评论 -
leet53:最大子序和
public static int maxSubArray(int[] nums) { int sum=0,max=Integer.MIN_VALUE; for (int num:nums) { sum = Math.max(0, sum); sum+=num; max=Math.max(max,sum); } ret...原创 2019-12-16 19:09:08 · 114 阅读 · 0 评论 -
leet35:搜索插入位置
二分查找public static int searchInsert(int[] nums, int target) { int left = 0; int right = nums.length - 1; int mid = 0; while (left<=right){ mid = (left+right)/2; if...原创 2019-12-16 19:00:36 · 84 阅读 · 0 评论 -
leet27:移除元素
public int removeElement(int[] nums, int val) { int i = 0; for (int j = 0; j < nums.length; j++) { if (nums[j] != val) { nums[i] = nums[j]; i++; } ...原创 2019-12-16 18:32:02 · 72 阅读 · 0 评论 -
leet26:删除排序数组中的重复项
自己写的public static int removeDuplicates(int[] nums) { int j = 0; if(nums.length ==0) return 0; int temp = nums[0]; for (int i = 1; i < nums.length; i++) { if (temp ...原创 2019-12-16 17:32:30 · 88 阅读 · 0 评论 -
leet18:四数之和
public List<List<Integer>> fourSum(int[] nums, int target) { /*定义一个返回值*/ List<List<Integer>> result = new ArrayList<>(); /*当数组为null或元素小于4个时,直接返回*/ if (nu...原创 2019-12-16 17:27:55 · 148 阅读 · 0 评论 -
leet1:两数之和
hash表 public int[] twoSum(int[] nums, int target) {//4ms Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { map.p...原创 2019-12-16 17:18:34 · 111 阅读 · 0 评论 -
leet16:最接近的三数之和
public static int threeSumClosest1(int[] nums, int target) {//7ms Arrays.sort(nums); int ans = nums[0] + nums[1] + nums[2]; for (int i = 0; i < nums.length-2; i++) { int start...原创 2019-12-13 19:24:00 · 83 阅读 · 0 评论 -
leet118/119:杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。public static List<List<Integer>> generate(int numRows) { List<List<Integer>> triangle = new ArrayList<List<Integer>>(); ...原创 2019-12-12 17:03:50 · 79 阅读 · 0 评论 -
leet33:搜索旋转排序数组
public int search12(int[] nums, int target) { int left = 0; int right = nums.length-1; while (left < right) { int mid = left + (right - left) /2; //int mid = left ...原创 2019-12-12 16:26:07 · 73 阅读 · 0 评论 -
leet1275: 找出井字棋的获胜者
直接将坐标弄成转换一下即可public static String tictactoe(int[][] moves) { Set<Integer> a = new HashSet<>(); Set<Integer> b = new HashSet<>(); for(int i=0;i<mov...原创 2019-12-12 15:45:16 · 174 阅读 · 0 评论 -
leet1185:一周中的第几天
根据蔡勒公式计算if (month == 1) { month = 13; year--;}if (month == 2) { month = 14; year--;}int week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400)...原创 2019-12-12 14:16:54 · 77 阅读 · 0 评论 -
leet1189:“气球” 的最大数量
HashMap,不过不建议使用,太麻烦了如果不是balloon,是一个很长的单词就很尴尬public static int maxNumberOfBalloons(String text) {//18ms char[] chars = text.toCharArray(); HashMap<Character,Integer> map = new HashMap&l...原创 2019-12-12 14:01:59 · 114 阅读 · 0 评论 -
leet88:合并两个有序数组
最素的方法,不过时间复杂度比较高O((n+m)log(n+m)),而且没有利用数组有序的特点public void merge(int[] nums1, int m, int[] nums2, int n) { System.arraycopy(nums2, 0,nums1 ,m, n); Arrays.sort(nums1);}从后到前,不需要使用额外空间publi...原创 2019-12-11 14:42:01 · 127 阅读 · 0 评论 -
leet189旋转数组
暴力法。这个方法我也想到了,就是实现了很长时间public static void rotate(int[] nums, int k) {//114ms int privious,temp; for (int i = 0; i <k ; i++) { privious = nums[nums.length-1]; for (int j...原创 2019-12-11 11:33:56 · 83 阅读 · 0 评论 -
leet349两个数组的交集
使用HashSet的交集方法public boolean retainAll(Collection<?> c) { Objects.requireNonNull(c); boolean modified = false; Iterator<E> it = iterator(); while (it.hasNext()) { ...原创 2019-12-10 16:10:39 · 83 阅读 · 0 评论 -
leet238.除自身以外数组的乘积
开始尝试使用除法,但是有0比较难受,之后…左边:a0=1; a1=a0; a2=a0a1; a3=a0a1a2;右边:a3=1; a2=a3; a1=a3a2; a0=a3a2a1;然后左右两边相乘。就是最后的结果集。public static int[] productExceptSelf(int[] nums) { int n = nums.length - 1; i...原创 2019-12-09 19:41:44 · 213 阅读 · 0 评论 -
leet74搜索二维矩阵
public static boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length; if (m == 0) return false; int n = matrix[0].length; // 二分查找 int left = 0, right = m * n - ...原创 2019-12-09 18:48:38 · 218 阅读 · 0 评论 -
leet240搜索二维矩阵 II
我的代码public static boolean searchMatrix(int[][] matrix, int target) { for (int i = 0; i < matrix.length; i++) { int left = 0; int right = matrix[i].length-1; while (lef...原创 2019-12-09 18:31:06 · 95 阅读 · 0 评论 -
leet334增的三元子序列
这道题要求使用O(n)的时间复杂度,如果采用暴力法的话,两个for循环搞定,但是时间复杂度则为O(n2)解题方法其实也很节点,一次遍历,先找两个值,一个是最小值即为最左边的值,一个最大值即为中间值,如果最后发现有一个值,比中间那个找的最大值还要大,则说明它就是要找的三个数当中的最大值即为右边的值。public static boolean increasingTriplet(int[] nu...原创 2019-12-09 16:25:09 · 112 阅读 · 0 评论 -
leet384 打乱数组
对于一个数组,我们应该如何去打乱它的顺序呢?怎样保证足够乱,即概率都一样?我们可以通过数学原创 2019-12-09 15:51:28 · 96 阅读 · 0 评论 -
leet350数组交集||
双指针Arrays.sort(nums1);Arrays.sort(nums2);int len1 = nums1.length;int len2 = nums2.length;int i = 0;int j = 0;int z = 0;ArrayList<Integer> list = new ArrayList<>();while (i < l...原创 2019-12-07 11:56:36 · 88 阅读 · 0 评论