![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
相同同
这个作者很懒,什么都没留下…
展开
-
队列&栈
队列&栈1、队列1.1 队列:先入先出的数据结构1.2 队列和广度优先搜索1、队列1.1 队列:先入先出的数据结构队列实现一般采用循环队列的形式,可以有效的节约空间,提高空间利用率。下面给出循环队列的实现,完成插入,删除,取出,判断是否为空,是否满的操作:class MyCircularQueue { //模拟队列 private int[] queue; //队列长度,开始位置和插入的数据长度 private int head; private int原创 2020-11-30 20:33:38 · 89 阅读 · 0 评论 -
2020-11-13
11.12每日一题922. 按奇偶排序数组 II922. 按奇偶排序数组 II这道题非常简单,就是按照要求对数组进行排序,将偶数放到偶数位,奇数放到奇数位,下面给出两种方法,一种是利用了一个新的数组存放,另一中是在原数组之上利用双指针来做。class Solution { public int[] sortArrayByParityII(int[] A) { int len = A.length; int[] res = new int[len]; int i =原创 2020-11-13 08:46:55 · 58 阅读 · 0 评论 -
2020-11-10
11.10每日一题31. 下一个排列31. 下一个排列题目是要求找出字典序中的下一个更大的排列,如果没有下一个排列,则数字应该是按照从大到小的顺序排列的,所以如果有的话一定是有一个“小数”拍到了“大数”前面,所以第一步就是从后往前找到第一个”小数“,然后将它和后面的第一个比他大的数交换,最后再将后面的数字进行排序就可以了。class Solution { public void nextPermutation(int[] nums) { if(nums.length == 0原创 2020-11-10 20:57:03 · 62 阅读 · 0 评论 -
2020-11-09
11.09每日一题973. 最接近原点的 K 个点973. 最接近原点的 K 个点这道题之前做过类似的,利用最小堆直接求解就可以了,下面附上代码。class Solution { public int[][] kClosest(int[][] points, int K) { if(points.length == 0 || points == null){ return new int[0][0]; } Queue<in原创 2020-11-09 20:45:36 · 50 阅读 · 0 评论 -
2020-11-08
11.08每日一题122. 买卖股票的最佳时机 II122. 买卖股票的最佳时机 II首先阅读题目得知可以做的动作有两个买或者卖,并且不能参与多笔交易,状态只可能是有1支股票或者没有股票,所以动态规划方程每一天有两个状态,每一天的状态从前一天转移有两种可能,如果当前没有股票(dp[i][0])说明前一天没有股票dp[i-1][0]或者前一天有股票但是今天卖掉了(dp[i-1][1]+price(i)),如果当前有股票(dp[i][1])说明前一天有股票(dp[i-1][1])或者前一天没有股票买进了股票原创 2020-11-08 11:11:17 · 95 阅读 · 0 评论 -
2020-11-07
11.07每日一题327. 区间和的个数327. 区间和的个数今天的解答没太看懂,比较早还没有比较简单的解答,等晚上或者明天再来补上吧,先写上最简单的双白暴力法class Solution { public int countRangeSum(int[] nums, int lower, int upper) { //双百暴力 int count = 0; for(int i =0; i < nums.length; i++){原创 2020-11-07 09:31:21 · 57 阅读 · 0 评论 -
2020-11-07
11.06每日一题1356. 根据数字二进制下 1 的数目排序1356. 根据数字二进制下 1 的数目排序这道题比较简单,写个函数计算一下每个数中含1的个人,然后重写sort函数判断大小就可以了。class Solution { int[] x = new int[10001]; public int[] sortByBits(int[] arr) { List<Integer> list = new ArrayList<>();原创 2020-11-07 08:27:49 · 55 阅读 · 0 评论 -
2020-11-05
11.05每日一题127. 单词接龙127. 单词接龙题目可以看作是从起点到终点,可以采用BFS的方法来解,同时,由于终点是已知的,可以用双向BFS来进行时间优化,如果直接建图,每一个单词需要和除他之外的单词进行比较,复杂度为O(n*wordLength),但是如果把单词都放到一个hash表中,那么复杂度就可以减到O(26 * wordLength),使用BFS需要两个辅助数据结构,一个是队列,存放当前层,一个是visited集合,存放遍历过的节点,防止死循环。class Solution {原创 2020-11-05 15:11:27 · 71 阅读 · 0 评论 -
2020-11-04
11.04每日一题57. 插入区间57. 插入区间这题挺简单的,不知道为什么属于困难题,首先分析一下特殊情况,有两种,插入的数组比第一个小,插入的数组比最后一个大,剩下的情况就是newinterval[0] > intervals[i][1],表明这些数在插入的前面,接下来的数newinterval[1] >= intervals[i][0] ,表明这些数需要合并起来,之后剩下的数再加到新数组之中就可以了。因为开始不知道新数组的长度所以使用ArrayList集合。使用一个全局变量i来统计遍历原创 2020-11-04 11:17:41 · 92 阅读 · 0 评论 -
2020-11-03
11.03每日一题941. 有效的山脉数组845. 数组中的最长山脉941. 有效的山脉数组这道题就比较简单了,只要从左开始找,找到第一个最大值,然后比较之后的值是不是都比他小就行了,当然也可以用双指针的方法,两边同时开始找,如果最后left==right就说明是同一个,这这题需要注意的就是边界值的问题,当最大值在起点和终点都是不行的!!还要注意的就是A的长度下面附上代码class Solution { public boolean validMountainArray(int[] A) {原创 2020-11-03 11:31:29 · 63 阅读 · 0 评论 -
2020-11-02
11.02每日一题349. 两个数组的交集349. 两个数组的交集要计算交集,就要遍历数据中的所有数,这时候想到昨天的每日一题,可以利用hash表保存数据,这样找到每一个数的时间都是O(1),同时从例子中可以看到重复的数只统计一次,可以想到利用HashSet来作为这次存储数据的结构,考虑完要使用的数组结构之后,剩下的就简单了,只需要遍历较小的那个,找到相同的数字取出来就可以了,下面附上代码:class Solution { public int[] intersection(int[] num原创 2020-11-02 09:21:40 · 54 阅读 · 0 评论 -
2020-11-01
11.1每日一题140. 单词拆分 II140. 单词拆分 II这道题是139题的拓展,所以先来解决139,139是判断字符串是否可以拆分成字典中的单词,可以想到使用动态规划的方法来解决这道题,设dp[i]是长度为i的字符串能否拆分成单词,那么将字符串i拆解成(0,j)和(j,i)如果这两个字符串都是在字典中出现的单词,那么组合后的i也是字典中的单词,因此转移方程为:dp[i] = dp[j] && wordDict.contains(s.substring(j, i)),当i = 0,原创 2020-11-01 16:12:48 · 66 阅读 · 0 评论 -
2020-10-31
10.31每日一题381. O(1) 时间插入、删除和获取随机元素 - 允许重复381. O(1) 时间插入、删除和获取随机元素 - 允许重复今天的每日一题没啥思路,直接参考的官网解,维护了一个List集合用来保存数,用来随机的取出数,同时借助一个hashMap用来删除数据,下面直接贴代码了。class RandomizedCollection { Map<Integer, Set<Integer>> idx; List<Integer> nums;原创 2020-10-31 09:49:39 · 70 阅读 · 0 评论 -
2020-10-30
10.30每日一题463. 岛屿的周长463. 岛屿的周长首先想到的是遍历每一个格子,这样就可以找出所有的陆地格子,接下来要做的就是统计这些陆地格子的周长,格子的周长通过观察可以看到当这个格子的边是边界或者临近的格子是海洋的时候就是周长了,这样找到了判别的条件就可以开始写代码了。class Solution { public int islandPerimeter(int[][] grid) { int x = grid.length; int y = grid原创 2020-10-30 11:04:59 · 59 阅读 · 0 评论