数组
weixin_42604028
这个作者很懒,什么都没留下…
展开
-
560-和为k的子数组(前缀和)
class Solution { public int subarraySum(int[] nums, int k) { //前缀和 Map<Integer, Integer> map = new HashMap<>(); map.put(0, 1);//map保存前i项和的值以及出现的次数 int ans = 0, pre = 0; for(int i = 0;i < nums.lengt原创 2021-10-10 14:31:05 · 67 阅读 · 0 评论 -
581-最短无序连续子数组
判断数组元素是否无序的方法!class Solution { public int findUnsortedSubarray(int[] nums) { /*思想:从左向右遍历,若当前数比前面的最大值小则表明该数需要重排,以此可以找到需要重排的最右端 同理,从右向左遍历,若当前数比之前的最小值大则表明该数需要重排,以此可以找到需要重排的最左端 */ int n = nums.length; int ma原创 2021-10-06 15:40:32 · 59 阅读 · 0 评论 -
221-最大正方形
动态规划当前正方形的边长由其左方、左上方、上方的正方形边长决定!!class Solution { public int maximalSquare(char[][] matrix) { //动态规划 dp[i][j]表示以m[i][j]为右下角的正方形的边长 int row = matrix.length, col = matrix[0].length; int[][] dp = new int[row][col]; int ma原创 2021-09-09 11:37:20 · 42 阅读 · 0 评论 -
207-课程表
拓扑排序!!class Solution { public boolean canFinish(int numCourses, int[][] prerequisites) { //拓扑排序判断有向无环图!!! List<List<Integer>> edges = new ArrayList<>();//邻接表 for(int i = 0;i < numCourses;i++){ e原创 2021-09-08 11:08:28 · 52 阅读 · 0 评论 -
41-缺失的第一个正数
要求:时间O(n) 空间O(1)1.置换class Solution { public int firstMissingPositive(int[] nums) { //置换 将x换到x-1的位置上 [1,2,3,4,...] int n = nums.length; for(int i = 0;i < n;i++){ while(nums[i] > 0 && nums[i] < n+1 &原创 2021-08-17 15:33:46 · 44 阅读 · 0 评论 -
x数之和(1、15、16、18)
1.两数之和哈希表class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>();//{num[i]:i} for(int i = 0;i < nums.length;i++){ if(map.containsKey(target-nums[i])){原创 2021-08-11 14:18:44 · 98 阅读 · 0 评论