上一页 1 2 3 4 5 6 7 8 9 10 ··· 43 下一页

2020年10月7日

差分数组(1109. 航班预订统计)

摘要: 本文讲一个和前缀和思想非常类似的算法技巧「差分数组」,差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。 比如说,我给你输入一个数组 nums,然后又要求给区间 nums[2..6] 全部加 1,再给 nums[3..9] 全部减 3,再给 nums[0..4] 全部加 2,再给... 阅读全文

posted @ 2020-10-07 15:04 wsw_seu 阅读(141) 评论(0) 推荐(0) 编辑

前缀和

摘要: 一、什么是前缀和 前缀和的思路是这样的,对于一个给定的数组 nums,我们额外开辟一个前缀和数组进行预处理: int n = nums.length; // 前缀和数组 int[] preSum = new int[n + 1]; preSum[0] = 0; for (int i = 0; i < 阅读全文

posted @ 2020-10-07 14:59 wsw_seu 阅读(322) 评论(0) 推荐(0) 编辑

2020年9月20日

连续子数组的和的绝对值的最大值、最小值(非绝对值的话直接dp动态规划)

摘要: 前缀和的思路: sum[i] = num[0]+num[1]+......+num[i-1] sum[j] = num[0]+num[1]+......+num[j-1] 那么:num[i]+num[i+1]+....num[j] = sum[j+1] - sum[i] 所以求连续子数组绝对值的最大 阅读全文

posted @ 2020-09-20 13:35 wsw_seu 阅读(705) 评论(0) 推荐(0) 编辑

找出数组中出现次数超过一半的数字(众数)

摘要: 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 法1:借助hashmap存储数组中每个数出现的次数,最后看是否有数字出现次数超 阅读全文

posted @ 2020-09-20 11:54 wsw_seu 阅读(272) 评论(0) 推荐(0) 编辑

2020年9月19日

消失的两个数字(1-N缺两个数)

摘要: 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1: 输入: [1]输出: [2,3]示例 2: 输入: [2,3]输出: [1,4]提示: nums.length <= 30000 阅读全文

posted @ 2020-09-19 18:06 wsw_seu 阅读(593) 评论(0) 推荐(0) 编辑

47. Permutations II

摘要: Given a collection of numbers that might contain duplicates, return all possible unique permutations. Example: Input: [1,1,2] Output: [ [1,1,2], [1,2, 阅读全文

posted @ 2020-09-19 16:52 wsw_seu 阅读(71) 评论(0) 推荐(0) 编辑

137. Single Number II

摘要: Given a non-empty array of integers, every element appears three times except for one, which appears exactly once. Find that single one. Note: Your al 阅读全文

posted @ 2020-09-19 16:05 wsw_seu 阅读(72) 评论(0) 推荐(0) 编辑

2020年9月18日

Go语言内存分配(详述 转)

摘要: 一、内存管理简介 1.1 虚拟内存 虚拟内存是当代操作系统必备的一项重要功能,对于进程而言虚拟内存屏蔽了底层了RAM和磁盘,并向进程提供了远超物理内存大小的内存空间。我们看一下虚拟内存的分层设计。 上图展示了某进程访问数据,当Cache没有命中的时候,访问虚拟内存获取数据的过程。在访问内存,实际访问 阅读全文

posted @ 2020-09-18 19:19 wsw_seu 阅读(252) 评论(0) 推荐(0) 编辑

Go语言内存分配(简述 转)

摘要: 在Go语言里,从内存的分配到不再使用后内存的回收等等这些内存管理工作都是由Go在底层完成的。虽然开发者在写代码时不必过度关心内存从分配到回收这个过程,但是Go的内存分配策略里有不少有意思的设计,通过了解他们有助于我们自身的提高,也让我们能写出更高效的Go程序。 Go内存管理的设计旨在在并发环境中快速 阅读全文

posted @ 2020-09-18 16:49 wsw_seu 阅读(209) 评论(0) 推荐(0) 编辑

2020年9月17日

redis分布式锁

摘要: 一、分布式锁的实现有哪些? 基本要求 实现一个分布式锁定, 我们至少要考虑它能满足一下的这些需求: 互斥, 就是要在任何的时刻, 同一个锁只能够有一个客户端用户锁定. 不会死锁, 就算持有锁的客户端在持有期间崩溃了, 但是也不会影响后续的客户端加锁 谁加锁谁解锁, 很好理解, 加锁和解锁的必须是同一 阅读全文

posted @ 2020-09-17 20:01 wsw_seu 阅读(188) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 43 下一页

导航