自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 一键关闭Win10烦人的自动更新

前段时间在熬夜淦代码的关键时刻,电脑就不动了,我以为是电脑要不行了没事犯卡,可是接下来的一幕我人傻了。相信很多朋友都遇见过这种情况。虽然代码能保存,但是还是少了一点点,搞得作者也是非常不爽,之前有一次也是自动更新,更新之后就各种问题就出现了,也是非常难受然后作者就下定决心一定要把这个更新关了,如果关不了哪怕重做一个盗版系统都要关掉,在我看来更新百害而无一利,于是就找了这款软件,windows10一键关闭更新,让您的电脑再也不更新,作者亲测不更新不会对电脑造成一点损伤,而更新才会造成电脑变卡等问题

2021-02-06 11:51:11 980 2

原创 百度网盘下载加速(pc端)

新版pandown分享, 因为作者还在上学,前几天在学习的时候想下载一些学习用的资料软件什么的,然后作者是学计算机的,有一个软件还挺大的,作者满腔热血想学会习,被百度网盘告知想下载完需要12个小时,直接就把这个作者想学习的心打灭了,于是作者就被迫又玩了一天图片,后来就感觉不行,不能被这个恶势力给打败,最后就发现了这个软件挺好用的想分享给大家。链接:https://wws.lanzous.com/iw41dkv562j蓝奏云不会取消密码,密码是h3rx...

2021-01-26 15:38:41 7153 9

原创 还有两个月考国二的你,真的用对方法了吗?(附国二刷题软件)

前两天一个朋友找到我,因为我是计算机类的学生,所以她问我说快要考国二了怎么办呀,在此我需要澄清一下计算机类的学生是不需要考国二的!但我想可能这个问题是很多人的困惑,所以就想写个文章说一说,国二报完名了怎么复习呢?因为是计算机类的学生,所以我信奉能动手尽量别吵吵,动手实操刷题才是王道,所以上网找了很多资料最后想出这篇教程,是安装一个软件的步骤,能模拟国二的考试环境,提前进行练习还怕得不了高分么?本文将为大家免费提供国二最新题库和office软件的安装包以及一系列的安装教程,电脑小白也能学会哦。同.

2021-01-19 15:55:24 1950 6

原创 剑指 Offer 14- I. 剪绳子(Java)(动态规划)

题目链接:剑指 Offer 14- I. 剪绳子题目描述:动态规划,绳子只能分2或者分3才是最优解,最好分若干个3加一个2或者全是3,因为如果分4就跟两个2和1,3一样,所以没必要考虑吧。class Solution { public int cuttingRope(int n) { if(n==0||n==1||n==2)return 1; if(n==3)return 2; int[] dp=new int[n+1]; dp

2021-03-31 12:49:14 191

原创 面试题34. 二叉树中和为某一值的路径(Java)(递归)

题目链接:面试题34. 二叉树中和为某一值的路径题目描述:这个题首先看就是一个普普通通的深搜,遍历一遍就出答案了,然后我踩了两个坑(因为没好好审题)说一下起初以为起点随便从哪里开始都可以,于是先存了一下所有节点没注意终点必须是叶节点(叶节点的定义是下面没有其他节点的节点),最坑的样例就是[1,2] 1返回null,[1] 1 返回[[1]].然后就是非常简单的题了:/** * Definition for a binary tree node. * public class TreeNo

2021-03-29 14:52:49 212 1

原创 剑指 Offer 32 - III. 从上到下打印二叉树 III(Java)(层序遍历,双向遍历)

题目链接:剑指 Offer 32 - III. 从上到下打印二叉树 III题目描述:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List<

2021-03-29 14:45:46 215

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II(Java)(层序遍历)

题目链接:剑指 Offer 32 - II. 从上到下打印二叉树 II题目描述:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List<Li

2021-03-29 14:41:18 150

原创 剑指 Offer 32 - I. 从上到下打印二叉树(Java)(层序遍历)

题目链接:剑指 Offer 32 - I. 从上到下打印二叉树题目描述:最简单的层序遍历,迭代一下就OK了/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publ

2021-03-29 14:34:22 92

原创 剑指 Offer 28. 对称的二叉树(Java)(递归)

题目链接:剑指 Offer 28. 对称的二叉树题目描述:从根节点出发,同时向左右跑,如果遇见不一样的就返回false,反之返回true class Solution { public boolean isSymmetric(TreeNode root) { return dfs(root,root); } public boolean dfs(TreeNode l,TreeNode r){ //如果都是空开始回溯 if(l==nul

2021-03-24 23:03:52 86

原创 剑指 Offer 27. 二叉树的镜像(Java)(递归)

题目链接:剑指 Offer 27. 二叉树的镜像题目描述:后序遍历,找到最下面,边回溯边交换子节点,可以避免从上向下交换造成的bugclass Solution { public TreeNode mirrorTree(TreeNode root) { if(root==null)return null; //找到最下面 mirrorTree(root.left); mirrorTree(root.right);

2021-03-24 22:56:27 88

原创 剑指 Offer 26. 树的子结构(Java)(递归)

题目链接:剑指 Offer 26. 树的子结构题目描述:先找出A树所有和B树根节点相同的节点存入集合,遍历集合元素做起始点,遍历B树,如果都结构和B树相同则返回true/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } *

2021-03-24 22:51:02 93

原创 牛客NC119最小的K个数(Java)(归并排序)

题目链接:牛客NC119最小的K个数题目描述:先排序找最小的几个数很简单,也可以用优先队列写,这里为了练习排序就用归并写了public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { if(k>input.length)return new ArrayList(); ArrayList<Integer> list=new ArrayList<>

2021-03-24 22:44:35 173

原创 牛客NC45实现二叉树先序,中序和后序遍历(Java)(递归)

题目链接:牛客NC45实现二叉树先序,中序和后序遍历题目描述:简单板子,直接用递归写方便点public class Solution { /** * * @param root TreeNode类 the root of binary tree * @return int整型二维数组 */ int cnt=0; public int[][] threeOrders (TreeNode root) { // write c

2021-03-23 22:57:20 133

原创 牛客NC4判断链表是否有环(Java)(快慢指针)

题目链接:牛客NC4判断链表是否有环题目描述:快慢指针,设定一个快指针每次走两步,如果链表有环快指针一定能再次和慢指针相遇/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */publi

2021-03-23 22:54:39 155

原创 牛客NC140排序(Java)(快排/归并)

题目链接:牛客NC140排序题目描述:排序的板子题,我用了快排和归并两种写,别的也行快排:import java.util.*;public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * * @param arr int整型一维数组 待排序的数组 * @return int整型一维数组 */ public static i

2021-03-23 22:51:48 193

原创 牛客NC78反转链表(Java)(递归)

题目链接:牛客NC78反转链表题目描述:递归到最底层,回溯时候将节点加到新链表后面public class Solution { ListNode ans; ListNode temp; public ListNode ReverseList(ListNode head) { //出口 if(head==null){ ans=new ListNode(0); temp=ans; r

2021-03-23 12:10:12 134

原创 LeeCode437路径总和Ⅲ(Java)(前缀和+递归)

题目链接:LeeCode437路径总和Ⅲ题目描述:原文地址这个题是看题解大佬才学会的,本来想dfs硬搜,但是感觉不太能实现,之后看完正好用前缀和,hashmap存下来,class Solution { static Map<Integer,Integer> map; static int target; public static int pathSum(TreeNode root, int sum) { map=new HashMap&

2021-03-10 17:12:21 144

原创 LeeCode739每日温度(Java)(单调栈)

题目链接:LeeCode739每日温度题目描述:单调栈,先将温度下标压到栈里面,有比该温度大的温度时将数据弹出栈,记录相差天数public static int[] dailyTemperatures(int[] T) { Stack<Integer> stack=new Stack<>(); int[] ans=new int[T.length]; for (int i = 0; i < T.length; i++) {

2021-03-09 22:18:49 119

原创 LeeCode621任务调度器(Java)(填桶思想)

题目链接:LeeCode621任务调度器题目描述:开始想模拟一下任务调度,后来发现不是最优解,想了想最优解应该是先执行最多的任务,依次向最少的任务执行,例如:AAABBBCCCDDE执行顺序应该是ABCDABCDABCE等于12,最开始思路想错了写成了ABCABCABCDE空闲D等于13然后又在题解学了填桶的思想,大神的题解受益匪浅,就是用表格将最多的任务放在前面,作每行的头,之后将较少的任务填满该行,最后的格子数就是最优解,但是有一种情况就是种类过多,表格会变得不规律,无法计算正确答案,可以比限

2021-03-09 22:14:30 147

原创 LeeCode581最短无序连续子数组(Java)(单调栈或简单排序)

题目链接:LeeCode581最短无序连续子数组题目描述:拿到题秒出思路排序找对应位置不匹配的数组例:2,6,4,8,10,9,15排序过后:2,4,6,8,9,10,15不对应的位置就是4-9的长度得出5代码:class Solution { public static int findUnsortedSubarray(int[] nums) { if(nums.length==1||nums.length==0)return 0; int[] nums

2021-03-09 12:45:30 129

原创 LeeCode560和为k的子数组(Java)(前缀和)

题目链接:LeeCode560和为k的子数组题目描述:这道题最开始想用滑窗做,但是后来考虑数组里面是有负数的,方向是出错的,首先考虑最笨的放法就是遍历一遍确定左边界,然后向后计算是否有结果等于k的子数组。时间复杂度O(n*n),然后考虑前缀和,算出所有的前缀和例如1 1 1 1 1 k=3,前缀和为1 2 3 4 5 结果等于3的子数组就是 4-1,5-2,3-0三种情况。得出代码:class Solution { public static int subarraySum(int[] num

2021-03-09 12:38:48 139

原创 LeeCode494目标和(Java)(dfs)

题目链接:LeeCode494目标和题目描述:这个题上来看一眼就是动态规划,然后说实话我也是到现在也没学会,学会了会去更新,暴力做法相信大家都能想到,数据比较小。class Solution { public static int findTargetSumWays(int[] nums, int S) { return dfs(nums,S,0); } public static int dfs(int[] nums,int S,int step){

2021-02-20 18:28:38 97

原创 LeeCode543二叉树的直径(Java)(递归)

题目链接:LeeCode543二叉树的直径题目描述:求树中两个节点最远的距离,不一定过根节点,我直接想的思路就是通过最大深度,某个点左右子树最大深度和肯定有最远的,然后思路对了就开写,真是过年过傻了,竟然将节点遍历出来再挨个求深度,最后想到可以求深度的过程中解决问题/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo

2021-02-20 18:25:00 117

原创 LeeCode697数组的度(Java)(哈希)(每日签到)

题目链接:LeeCode697数组的度题目描述:题目有点绕嘴就是说求出数组的最大度,度就是数组最多拥有多少个相同的数,然后让子序列在保证度相同的同时尽可能短。思路非常简单,我使用了一个hashmap,每个键对应一个长度为3的数组,degree[0]存度,degree[1]存该数在序列中起点,degree[2]则存终点。然后找出最大度里面起点和终点差最小的,效率还是蛮高得class Solution { public static int findShortestSubArray(int[]

2021-02-20 16:57:20 77

原创 LeeCode461汉明距离(Java)(动态规划)

题目链接:LeeCode461汉明距离题目描述:题目很简单,就是算二进制位置不同的数有几个,可以异或一下,异或的意思就是将1变成0001,将4变成0100然后相同为0不同为1,得出0101即5,再算5的二进制1有几个class Solution { public int hammingDistance(int x, int y) { int z=x^y,ans=0; while(z>0){ if(z%2==1)ans++;

2021-02-20 12:59:54 94

原创 LeeCode438找到字符串中所有字母异位词(Java)(hash哈希)

题目链接:LeeCode438找到字符串中所有字母异位词题目描述:找字母异位词就是相同字母组成但是顺序不一样的词,自己写一个哈希,越散列越好,判断是否是字母异位词class Solution { public List<Integer> findAnagrams(String s, String p) { List<Integer> list=new ArrayList<>(); //p串算出来的hash in

2021-02-19 18:40:48 141

原创 LeeCode416分割等和子集(Java)(动态规划)

题目链接:LeeCode416分割等和子集题目描述:首先看要求,判断是否能分成两个和相等的子集,于是我就想求出整个和的一半,然后搜索判断是不是能拼出来这样的结果,然后时间超限了。然后就开始思考动态规划,把这个题看成0-1背包问题,当容量是整个和一半的时候能获得的价值也是和一半代表拼出来了,返回trueclass Solution { public static boolean canPartition(int[] nums) { int[] dp=new int[20000]

2021-02-19 17:07:54 198

原创 LeeCode406根据身高重建队列(Java)(贪心带点脑筋急转弯)

题目链接:根据身高重建队列题目描述:首先拿到问题考虑应该如何排序,后面的人只能看见前面一边高的和一样高的,所以应该让高的先入队,然后矮的入队的时候直接根据后面的位置直接入队即可,因为前面入队的都比这个人高,所以答案可以保证正确。class Solution { public static int[][] reconstructQueue(int[][] people) { Arrays.sort(people, new Comparator<int[]>() {

2021-02-19 15:24:59 86

原创 LeeCode394字符串解码(Java)(递归)

题目链接:LeeCode394字符串解码题目描述:年前开的这个题,然后写了两发,没过,就去奶奶家过年了,吃年夜饭都在想,回家迫不及待就给写了,简单递归,想好入口出口,各种情况考虑清楚就ok了,唯一注意的地方就是用string拼接会比stringbuilder慢很多class Solution { public static String decodeString(String s) { return dfs(s, 0)[0]; } public static S

2021-02-19 11:23:09 174

原创 LeeCode347前k个高频元素(Java)(最小堆/优先队列)

题目链接:LeeCode347前k个高频元素题目描述:优先队列维护小根堆,每次有比队首大的就弹出队首然后入队class Solution { public static int[] topKFrequent(int[] nums, int k) { int[] frequent=new int[k]; Map<Integer,Integer> map=new HashMap<>(); //小根堆,即按比较器中内容升序排列,

2021-02-06 14:45:27 129

原创 LeeCode338比特位计数(Java)(动态规划)

题目链接:LeeCode338比特位计数题目描述:根据二进制数的性质,1,2,4,8…都只有一个1后面的可能是往上加或者加这些是1的数,取小值就行public int[] countBits(int num) { if(num==0)return new int[]{0}; if(num==1)return new int[]{0,1}; int n=1; int[] dp=new int[num+1]; dp[0]=0;

2021-02-05 20:21:12 94

原创 LeeCode213打家劫舍Ⅲ(Java)(树状动态规划)

题目链接:LeeCode213打家劫舍Ⅲ题目描述:这题看了Leetcode大神liweiwei1419的题解,感觉自己还是太菜了,其实这题原理跟打家劫舍Ⅰ,Ⅱ是一模一样的,但是可能由于我对树的理解有点浅,所以自己写了一个没跑过去。然后说说这题的思路思路新了解一个词叫后效性,虽然已经做了好几个类似的题了,我竟然也是看了题解才知道股票类型的题和这个还有打家劫舍都是一种题型。那下面说一下什么叫后效性。后效性:我理解的后效性就是当前状态会影响之后的状态,使得后面的状态不确定所以一般有后效性的题都要

2021-02-05 18:59:41 140

原创 LeeCode213打家劫舍Ⅱ(Java)(dp动态规划)

题目链接:LeeCode213打家劫舍Ⅱ题目描述:根据Leetcode198打家劫舍的思路多一个限制就是用1不能用n,用n不能用1,所以开了两个数组,一个存除了1的最大值,一个存除了n的最大值class Solution { public static int rob(int[] nums) { if(nums.length==1)return nums[0]; if(nums.length==2)return Math.max(nums[0], nums[1]

2021-02-05 15:57:32 132

原创 LeeCode309买卖股票的最佳时机(Java)(dp状态机)

题目链接:LeeCode309买卖股票的最佳时机题目描述:这个题真的卡了我好久,之前没做过类似的题目,看了题解才知道有状态机这个概念,得考虑多个状态,然后说说解题思路:思路买卖股票过程中一定会有两种状态,现在 手里面有股票/手里面没股票当手里面有股票时,有两种情况1.手里得股票是今天买的,那当前利润就是前天(今天减两天,因为有冷冻期)卖的最大利润减今天买股票花费的钱。2.手里的股票是昨天就有的,至于到底什么时候买的无所谓,当前利润就是昨天时候的利润当手里面没股票时,也有两种情况1.今天把股

2021-02-05 13:49:53 124

原创 LeeCode448找到所有数组中消失的数字(Java)(思维)

题目链接:LeeCode448找到所有数组中消失的数字题目描述:遍历一遍原始数组,每一个num[num[i]]变成负数,缺失的下标位置则不会变成负数,所以就可以找出来了class Solution { public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> list=new ArrayList<>(); for (int i = 0; i

2021-02-03 23:12:21 92

原创 LeeCode322零钱兑换(Java)(完全背包)

题目链接:LeeCode322零钱兑换题目描述:完全背包换成贪心小的,直接写就行class Solution { public static int coinChange(int[] coins, int amount) { int[] dp=new int[amount+1]; Arrays.fill(dp,Integer.MAX_VALUE-100); dp[0]=0; for (int i = 0; i < coins

2021-02-03 20:43:10 163 2

原创 LeeCode300最长递增子序列(Java)(动态规划加二分)

题目链接:LeeCode300最长递增子序列题目描述:首先拿到手就是一发动态规划LIS裸体,直接秒class Solution { public static int lengthOfLIS(int[] nums) { int[] dp=new int[nums.length]; int max=Integer.MIN_VALUE; for (int i = 0; i < nums.length; i++) { fo

2021-02-03 16:08:09 170

原创 二分查找的变形(找大于等于x的第一个数/找小于等于x的最后一个数)

众所周知二分查找是一个在有序数组中很快的查找方式,而一般是找该元素在数组中的位置。那今天作者遇见个问题,查找第一个比x大的数,比如说[5]这个数组第一个比3大的数就是5,而用普通的二分思维找会找不到,所以应该变换一下写法找大于等于x的第一个数int l=0,r=max;while (l < r) { int mid=(l+r)/2; if(k>dp[mid])l=mid+1; //else代表的是k<=dp[mid]所以r=mid也在范围内 else

2021-02-03 16:00:54 3188 1

原创 LeeCode287寻找重复数(Java)(二分)

题目链接:LeeCode287寻找重复数题目描述:题目说数字都在1-n之间所以可以在脑袋里面想象一个有序的1-n,其中有一个数是重复的,所以可以二分脑子里面有序的这个序列例:1,2,2,3,4,5,6,7,8这个序列,开始mid=(0+8)/2=4,注意是mid=4不是nums[mid]=4如果当前数组里面所有小于等于4的数大于四个,代表答案在1,2,3,4里面,注意这个1,2,3,4不是nums里面的,是脑子里面的依次类推,找到最后就是答案class Solution { public

2021-02-02 23:13:33 67

原创 LeeCode283移动零(Java)(双指针)

题目链接:LeeCode283移动零题目描述:双指针,左指针一步一步走,每次左指针遇见0就用右指针找第一个不等于零的数换过来,然后左指针接着往下找class Solution { public void moveZeroes(int[] nums) { //初始化左右指针 int l=0,r=1; while(l< nums.length){ //当左指针遇见零 if(nums[l]==0){

2021-02-02 21:40:11 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除