自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

java牛牛的博客

主要是想看下自己还能在多做些什么

  • 博客(132)
  • 收藏
  • 关注

原创 [算法]动态规范(dp)

动态规范总体思想基于 斐波那契数列fib(n)={1n=1或n=2fib(n−1)+fib(n−2)o/w fib(n)=\begin{cases}1 & n=1 或 n=2 \\fib(n-1) + fib(n-2) & o/w \\\end{cases}fib(n)={1fib(n−1)+fib(n−2)​n=1或n=2o/w​动态规划解决来递归的重...

2020-04-30 23:42:08 445

原创 [算法]二分查找

二分查找通用解题模板:区间定义:[l, r) 左闭右开f(m)函数 满足该条件,可直接返回对应位置g(m)函数 满足该条件,可移动右边界同理,在else中移动左边界如果没有这个条件的判断就是 lowwer_bound和higher_bound.def binary_search(l, r): while l < r: m = l + (r - l) ...

2020-04-23 18:09:22 192

原创 [算法]深度优先搜索(DFS)

深度优先搜索(DFS)解题步骤DFS 通用解题步骤截止条件遍历候选节点筛选DFS搜索执行顺序如下图力扣对应题目面试题 08.07. 无重复字符串的排列组合通用DFS解题代码public static String dfs(char[] chars,Stack stack) { // 1.截止条件 if (stack.size()==c...

2020-04-23 15:04:17 223

原创 孩子反复看一本绘本到底要不要干涉

先给出结果,不要干涉,而且还要鼓励这里从三个方面来解释下:原因一:宝宝喜欢其中的的内容,看到之后感到开心和喜悦原因二:他们的大脑运作获取信息的原理导致孩子和大人获取书中信息的顺序不同。对大人来说,看书是整体把握,反复读一本书,看到的文字和画面每次基本都是一样但孩子可不是这样。就算你每次一页一页吧绘本的文字念给他听,孩子仍然可以感受到不同的阅读层次比如,看一遍《巴巴爸爸的圣诞礼物》,大人会知道,这讲的是巴巴祖的鸟儿们如何在寒冷的冰雪天取暖的故事。但孩子不是的,他们看绘本,智慧广州一些片

2021-09-28 23:55:10 355

原创 [leetcode]35. 搜索插入位置

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 二分查找思路: 二分查找 暴力 目标值插入数组类似题型:题目 35. 搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4.

2020-06-20 18:07:52 328

原创 [spring]Spring源码编译

个人博客:https://javaniuniu.com/1.基本环境jdk 1.8.241 (必须1.8及以上版本)gradle 6.52.spring下载使用 git 下载 spring-framework下载地址:spring-framework2.使用ide 导入spring-framework 源码4.需要修改个配置 (看到 // 即为需要注释的代码)4.1 build.gradle// apply from: "${rootDir}/gradle/ide.gradl.

2020-06-13 01:23:09 492

转载 [shiro]shiro 中 AuthorizingRealm 的执行时机

1.doGetAuthenticationInfo执行时机如下当调用Subject currentUser = SecurityUtils.getSubject();currentUser.login(token);2.doGetAuthorizationInfo执行时机有三个,如下:subject.hasRole(“admin”) 或 subject.isPermitted(“admin”):自己去调用这个是否有什么角色或者是否有什么权限的时候;@RequiresRoles(“admin

2020-06-08 02:17:44 1196

原创 [leetcode]238. 除自身以外数组的乘积

个人博客:https://javaniuniu.com/难度:中等本题涉及算法:思路:乘积 = 左边乘积 * 右边乘积类似题型:题目 238. 除自身以外数组的乘积给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘.

2020-06-04 13:07:00 174

原创 [leetcode]28. 实现 strStr()

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:滑动窗口类似题型:3. 无重复字符的最长子串1461. 检查一个字符串是否包含所有长度为 K 的二进制子串1438. 绝对差不超过限制的最长连续子数组题目 28. 实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1.

2020-06-03 23:04:38 154

原创 [leetcode]27. 移除元素

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:拷贝覆盖 倒序遍历类似题型:题目 27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 .

2020-06-03 12:19:09 192

原创 [leetcode]26. 删除排序数组中的重复项

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:遍历类似题型:题目 26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1)O(1)O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。.

2020-06-02 14:43:20 236

原创 [leetcode]面试题64. 求1+2+…+n

个人博客:https://javaniuniu.com/难度:中等本题涉及算法:递归思路:递归类似题型:题目 面试题64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000方法一 递归解题思路:题目其实指明了要用 递归复杂度.

2020-06-02 12:52:38 170

原创 [leetcode]5409. 检查一个字符串是否包含所有长度为 K 的二进制子串

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 滑动窗口思路:滑动窗口类似题型:题目5409. 检查一个字符串是否包含所有长度为 K 的二进制子串给你一个二进制字符串 s 和一个整数 k 。如果所有长度为 k 的二进制字符串都是 s 的子串,请返回 True ,否则请返回 False 。示例 1:输入:s = "00110110", k = 2输出:true解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。它们分别是 .

2020-05-31 00:06:12 317

原创 [leetcode]5408. 通过翻转子数组使两个数组相等

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:zip类似题型:14. 最长公共前缀题目 5408. 通过翻转子数组使两个数组相等给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False 。示例 1:输入:target = [1,2,3,4], arr = [2,4,.

2020-05-31 00:05:15 196

原创 [leetcode]17. 电话号码的字母组合

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 回溯算法思路: 回溯算法类似题型:题目 17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答.

2020-05-21 11:12:45 225

原创 [leetcode]16. 最接近的三数之和

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 数组遍历 双指针思路:类似题型:15. 三数之和题目 16. 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1.

2020-05-20 11:14:50 128

原创 [leetcode]15. 三数之和

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 数组遍历思路:数组遍历类似题型:题目 15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, .

2020-05-19 17:21:25 130

原创 [leetcode]14. 最长公共前缀

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:zip类似题型:题目 14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。方法一 zip合并.

2020-05-18 17:48:04 256 1

原创 [leetcode]5413. 重新排列句子中的单词

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:lambda类似题型:题目 5413. 重新排列句子中的单词「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text :句子的首字母大写text 中的每个单词都用单个空格分隔。请你重新排列 text 中的单词,使所有单词按其长度的升序排列。如果两个单词的长度相同,则保留其在原句子中的相对顺序。请同样按上述格式返回新的句子。示例 1:输入:text = "Leetcode .

2020-05-17 20:11:31 521

原创 [leetcode]5412. 在既定时间做作业的学生人数

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:思路:zip类似题型:题目 5412. 在既定时间做作业的学生人数给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 .

2020-05-17 20:04:02 257

原创 [leetcode]5414. 收藏清单

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 交集思路:交集类似题型:题目 5414. 收藏清单给你一个数组 favoriteCompanies ,其中 favoriteCompanies[i] 是第 i 名用户收藏的公司清单 (下标从 0 开始)。请找出不是其他任何人收藏的公司清单的子集的收藏清单,并返回该清单下标。下标需要按升序排列。示例 1:输入:favoriteCompanies = [["leetcode","google","faceb.

2020-05-17 19:51:57 161

原创 [leetcode]5398. 统计二叉树中好节点的数目

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 深度优先搜索思路:类似题型:题目 5398. 统计二叉树中好节点的数目给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。示例 1:输入:root = [3,1,4,3,null,1,5]输出:4解释:图中蓝色节点为好节点。根节点 (3) 永远是个好节点。节点 4 -> (3,4) 是路.

2020-05-17 01:52:22 280

原创 [leetcode]5397. 最简分数

个人博客:https://javaniuniu.com/难度:中等本题涉及算法:最大公约数 欧几里得法思路:最大公约数 欧几里得法类似题型:水壶问题题目 5397. 最简分数给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n 的 最简 分数 。分数可以以 任意 顺序返回。示例 1:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3输出:["1/2",.

2020-05-17 01:40:00 320

原创 [leetcode]13. 罗马数字转整数

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 哈希表思路:类似题型:题目 13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2.

2020-05-16 22:06:01 143

原创 [leetcode]12. 整数转罗马数字

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 这道题告诉又一次告诉我,题解先做出来,不管方法多么的简单思路:类似题型:题目 12. 整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D和 M。字符 数值I 1V 5X 10L 50C 100D 500M .

2020-05-16 19:23:02 116

原创 [leetcode]8. 字符串转换整数 (atoi)

个人博客:https://javaniuniu.com/难度:中等本题涉及算法:思路:类似题型:题目 8. 字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字.

2020-05-15 22:43:57 118

原创 [leetcode]560. 和为K的子数组

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 前缀和 哈希表思路:前缀和 哈希表类似题型:题目 560. 和为K的子数组给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [.

2020-05-15 14:12:12 262

原创 [leetcode]6. Z 字形变换

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 题解模版思路:类似题型:6. Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 LEETCODEISHIRING 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进.

2020-05-14 22:02:34 162

原创 [leetcode]2. 两数相加

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 链表思路:链表类似题型:445. 两数相加 II题目 2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -&gt.

2020-05-13 15:08:41 134

原创 [leetcode]50. Pow(x, n)

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 递归 折半计算思路: 递归 折半计算类似题型:50. Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-.

2020-05-11 23:49:03 167

原创 [leetcode]1. 两数之和

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 前缀和 暴力 哈希表思路: 前缀和 暴力 哈希表类似题型:题目 1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] .

2020-05-11 23:47:08 458

原创 [leetcode]23. 合并K个排序链表

个人博客:https://javaniuniu.com/难度:困难本题涉及算法: 优先队列思路:优先队列类似题型:23. 合并K个排序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6方法一 优先队列解题思路通过题目和示例,可清楚的了解到,其实就是 .

2020-05-09 22:32:57 110

原创 [leetcode]213. 打家劫舍 II

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 动态规划思路:动态规划类似题型:198. 打家劫舍题目 213. 打家劫舍 II你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下,能够偷.

2020-05-09 16:40:50 151

原创 [leetcode]198. 打家劫舍

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 动态规划思路:动态规划类似题型:题目 198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 .

2020-05-09 14:32:17 155

原创 [leetcode]9. 回文数

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 算数思路:类似题型:题目 9. 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此...

2020-05-08 11:56:21 113

原创 [leetcode]206. 反转链表

个人博客:https://javaniuniu.com/难度:简单本题涉及算法: 迭代思路:迭代类似题型:题目 206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?...

2020-05-07 18:19:59 221

原创 [leetcode]1438. 绝对差不超过限制的最长连续子数组

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 滑动窗口思路:滑动窗口类似题型:3. 无重复字符的最长子串5393. 可获得的最大点数题目 1438. 绝对差不超过限制的最长连续子数组给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 lim...

2020-05-06 00:44:34 1184

原创 [leetcode]98. 验证二叉搜索树

个人博客:https://javaniuniu.com/难度:中等本题涉及算法: 中序遍历思路:类似题型:知识点参考: 二叉树(前序,中序,后序,层序)遍历递归与循环的python实现题目 98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的...

2020-05-05 13:41:08 177

原创 [leetcode]1111. 有效括号的嵌套深度

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:哈希表 暴力思路:哈希表 暴力类似题型:题目 20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: ...

2020-05-04 17:33:30 90

原创 [leetcode]1111. 有效括号的嵌套深度

个人博客:https://javaniuniu.com/难度:简单本题涉及算法:哈希表 暴力思路:哈希表 暴力类似题型:题目 1111. 有效括号的嵌套深度给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1...

2020-05-04 16:14:08 226

空空如也

空空如也

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

TA关注的人

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