数组刷题
浮生若梦yoo
这个作者很懒,什么都没留下…
展开
-
215. 数组中的第K个最大元素
package com.leetcode.july;import java.util.Arrays;/** * @author jiayoo * 7/27 * 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入:...原创 2018-07-27 15:53:54 · 539 阅读 · 0 评论 -
169. 求众数
/** * @author jiayoo * 7/26 * 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2 * * */public class Demo...原创 2018-07-27 15:24:01 · 89 阅读 · 0 评论 -
53. 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。/** * @author jiayoo * 7/26 * 分类: 简单 * https://leetcode-cn.co...原创 2018-07-27 15:05:17 · 102 阅读 · 0 评论 -
11.旋转图像
class Solution { public void rotate(int[][] matrix) { //1. 先把数组旋转 arrayRotate(matrix); // 2. 交换数组 int i , j , len; len = matrix.length; for(i = 0; i < len; i+...原创 2019-12-28 13:55:41 · 125 阅读 · 0 评论 -
10 . 有效的数独
public boolean isValidSudoku(char[][] board) { Set<Character>[] sets = new Set[18]; Set<Character> set ; int[] nums = new int[18]; int count ; // 初始化实例 for (int ...原创 2019-12-28 13:53:41 · 340 阅读 · 0 评论 -
9.两数之和
public int[] twoSum(int[] nums, int target) { int[] arr = new int[2]; for (int i = 0; i < nums.length; i++){ for (int j = i + 1; j < nums.length; j++){ if (nums[i] +...原创 2019-12-28 13:51:05 · 132 阅读 · 0 评论 -
8.移动零
第二种: 第一种的变种, 需要考虑的顺序直接覆盖法, 直接将找的非零往前覆盖,最后将后续的值用0填充。public void moveZeroes(int[] nums) { int i = 0, j = 0; for (; i < nums.length; i ++){ if (nums[i] != 0){ // 如果该...原创 2019-12-28 13:48:38 · 94 阅读 · 0 评论 -
7.加一
// 下面使用第一种方法算的public int[] plusOne(int[] digits) { int[] newArr = null; boolean flat = false; // 用来记录是否需要进位 int arrLen = digits.length; for (int i = arrLen-1; i >= 0 ; i--){ ...原创 2019-12-28 13:47:11 · 109 阅读 · 0 评论 -
6.两个数组的交集II
public int[] intersect(int[] nums1, int[] nums2) { int len1 = nums1.length; int len2 = nums2.length; int n = 0; int m = 0; int[] arr = new int[len1 < len2 ...原创 2019-12-28 13:45:30 · 72 阅读 · 0 评论 -
5.只出现一次的数字
public int singleNumber(int[] nums) { int val = 0; for (int i = 0; i < nums.length; i++){ val ^= nums[i]; } return val;}原创 2019-12-28 13:43:23 · 121 阅读 · 0 评论 -
4.存在重复
public boolean containsDuplicate(int[] nums) { for (int i = 1; i < nums.length; i++) { for (int j = i - 1; j >= 0; j--) { if (nums[i] == nums[j...原创 2019-12-28 13:41:51 · 67 阅读 · 0 评论 -
3.旋转数组
public void rotate(int[] nums, int k) { int arrLen = nums.length; int i, j; k = k % arrLen; // 确定有效移动值 int temNum = nums[0]; int temNum1 = 0; // 对于每个数字要移动k次 for (i = 0 ; i...原创 2019-12-28 13:40:07 · 103 阅读 · 0 评论 -
2.买卖股票的最佳时机
package LeetCodeDemo.primary;public class Demo22 { public static void main(String[] args){ Demo22 demo22 = new Demo22(); int[] nums = {2,2,5}; System.ou...原创 2019-12-28 13:38:30 · 105 阅读 · 0 评论 -
1.从排序的数组中删除重复项
package LeetCodeDemo.primary;import java.util.Arrays;public class Demo21 { public static void main(String[] args){ Demo21 demo21 = new Demo21();// int[] nums = {0,0,1,1,1,2,2...原创 2019-12-28 13:35:38 · 66 阅读 · 0 评论