- 博客(55)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 浅谈喝汽水问题————能用数学解决为什么要用递归
犹记得小学年代学奥术就曾经被喝汽水问题支配,没有想到现在这么大了还要面对这道题。题一:1元钱一瓶汽水,喝完之后两个空瓶换一瓶汽水。 问:若你有N元钱,你最多能喝多少瓶汽水?题二:一个人买汽水,一块钱一瓶汽水,三个瓶盖可以换一瓶汽水,两个空瓶可以换一瓶汽水,问20块钱可以买多少汽水?目录题一题二彩蛋题一思路1:(递归) - 先喝掉所有汽水,然后把空瓶换成汽水 - 重复操作,直到手上只有一瓶汽水,喝掉扔瓶子使用递归的思想即可实现: public stat
2020-06-28 15:47:19
1071
1
原创 【Java】LeetCode 118. 杨辉三角 && 119. 杨辉三角 II
118. 杨辉三角给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。很简单,只要按照题目中所给的动画实现就可以了class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> ans=new ArrayList<List<Integer>>(); Arra
2020-09-25 18:10:22
317
原创 【Java】LeetCode 1227. 飞机座位分配概率——数学好一行解决
有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。剩下的乘客将会:如果他们自己的座位还空着,就坐到自己的座位上,当他们自己的座位被占用时,随机选择其他座位第 n 位乘客坐在自己的座位上的概率是多少?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/airplane-seat-assignment-probability著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。乍一看应该.
2020-09-09 12:11:04
856
原创 【Java】LeetCode 1362. 最接近的因数
给你一个整数 num,请你找出同时满足下面全部要求的两个整数:两数乘积等于 num + 1 或 num + 2以绝对差进行度量,两数大小最接近你可以按任意顺序返回这两个整数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/closest-divisors著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。其实就是找num + 1 和 num + 2,所有一对一对的因子中,相距最小的。对于num + 1 和 num +.
2020-09-03 23:44:15
333
原创 【Java】LeetCode 1480. 一维数组的动态和
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/running-sum-of-1d-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。返回的runningSum[]第i位应该是nums[]数组的前N项和可以在原地计算,下标为1开始,nums[1]+=nu.
2020-09-03 23:16:48
439
原创 【Java】LeetCode 51. N 皇后
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入:4输出:[[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…Q.", // 解法 2“Q…”,“…Q”,“.Q…”]]解释: 4 皇后问题存在两个不同的解法。来源:力扣(LeetCo.
2020-09-03 14:56:08
148
原创 【Java】LeetCode 593. 有效的正方形
给定二维空间中四点的坐标,返回四点是否可以构造一个正方形。一个点的坐标(x,y)由一个有两个整数的整数数组表示。注意:所有输入整数都在 [-10000,10000] 范围内。一个有效的正方形有四个等长的正长和四个等角(90度角)。输入点没有顺序。判断对角线比较简单,正方形对角线需要:① 相等②相互垂直③中点重合满足这两个即可判定是正方形而如果用边判断就比较麻烦,要判断四条边垂直相等,由于点的顺序不确定,带来很多麻烦对角线就只要两两组合即可,对顺序要求不高class Soluti.
2020-09-01 17:00:10
237
原创 【Java】LeetCode 面试题 04.12. 求和路径
给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/paths-with-sum-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。直接暴力解法,对root和树中的每一个子树遍历满足的路径数(.
2020-09-01 16:07:23
156
原创 【Java】LeetCode 710. 黑名单中的随机数
给定一个包含 [0,n ) 中独特的整数的黑名单 B,写一个函数从 [ 0,n ) 中返回一个不在 B 中的随机整数。对它进行优化使其尽量少调用系统方法 Math.random() 。提示:1 <= N <= 10000000000 <= B.length < min(100000, N)[0, N) 不包含 N,详细参见 interval notation 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ran.
2020-09-01 15:21:45
247
原创 【Java】LeetCode 486. 预测赢家
给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/predict-the-winner著作权.
2020-09-01 12:11:14
172
原创 【Java】LeetCode 841. 钥匙和房间
有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间返回 true,否则.
2020-08-31 11:17:12
205
原创 【Java】LeetCode 第 204 场周赛
5499. 重复至少 K 次且长度为 M 的模式给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/detect-pattern-of-length-m-r
2020-08-30 17:07:54
197
原创 【Java】LeetCode 152. 乘积最大子数组
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray著作权归领扣网络.
2020-08-29 14:36:59
188
原创 【Java】LeetCode 621. 任务调度器
给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的最短时间。示例 :输入:tasks = [“A”,“A”,“A”,“B”,“B”,“.
2020-08-24 20:56:54
360
原创 【Java】LeetCode 494. 目标和
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一共有5种方法让最终目标和为3。提.
2020-08-24 11:26:58
176
原创 【Java】LeetCode 155. 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-stack著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。数据结构长度可变,且除取最小值外,之涉及对头部的操作,因此选择使.
2020-08-22 20:48:49
143
原创 【Java】LeetCode 283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。最容易想到的方法:新建一个等长数组,遍历原数组,把所有非零数按照顺.
2020-08-22 19:34:14
189
原创 【Java】LeetCode 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list著作权归领扣网络所有。商.
2020-07-17 18:48:20
193
原创 【Java】LeetCode 174. 地下城游戏 —— 困难
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点.
2020-07-17 15:58:36
317
1
原创 【Java】LeetCode 551. 学生出勤记录 I
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:‘A’ : Absent,缺勤‘L’ : Late,迟到‘P’ : Present,到场如果一个学生的出勤记录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/student-attendance-record-i著作权归领扣网络所有。商业转.
2020-07-17 15:09:24
173
原创 【Java】LeetCode 1395. 统计作战单位数
n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。每 3 个士兵可以组成一个作战单位,分组规则如下:从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]作战单位需满足: rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ,其中 0 <= i < j < k < n.
2020-07-17 11:28:47
234
原创 剑指 Offer 55 - I. 二叉树的深度 LeetCode 104. 二叉树的最大深度——递归
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。很简单:root的最大深度为左右子树最大深度中大的那一个+1;class Solution { public int maxDepth(TreeNode root) { if(root==null){ //父节点是叶子节点 return 0; }else{ //返回左右子树最大.
2020-07-16 16:52:49
122
原创 LeetCode 397. 整数替换 递归
397. 整数替换给定一个正整数 n,你可以做如下操作:1 如果 n 是偶数,则用 n / 2替换 n。2 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。n 变为 1 所需的最小替换次数是多少?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/integer-replacement著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。举个例子:拿到的n=30最佳路径应该是30→15→16→8→4→2→1为
2020-07-16 16:45:00
759
原创 LeetCode 746. 使用最小花费爬楼梯
746. 使用最小花费爬楼梯数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs著作权归领扣网络所有。商业转载请联系官方授权,非商业
2020-07-16 15:31:47
136
原创 LeetCode 1013. 将数组分成和相等的三个部分 暴力⑧可取
1013. 将数组分成和相等的三个部分给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1] 就可以将数组三等分。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem
2020-07-16 12:22:12
240
原创 LeetCode 519. 随机翻转矩阵
519. 随机翻转矩阵题中给出一个 n_rows 行 n_cols 列的二维矩阵,且所有值被初始化为 0。要求编写一个 flip 函数,均匀随机的将矩阵中的 0 变为 1,并返回该值的位置下标 [row_id,col_id];同样编写一个 reset 函数,将所有的值都重新置为 0。尽量最少调用随机函数 Math.random(),并且优化时间和空间复杂度。注意:1 <= n_rows, n_cols <= 100000 <= row.id < n_rows 并且 0 &l
2020-07-16 11:26:58
188
原创 LeetCode 面试题 16.11. 跳水板 85. 最大矩形 84. 柱状图中最大的矩形
面试题 16.11. 跳水板你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。返回的长度需要从小到大排列。示例:输入:shorter = 1longer = 2k = 3输出: {3,4,5,6}来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/diving-board-lcci著作权归领扣网络所有
2020-07-08 20:41:16
192
原创 LeetCode 112. 路径总和 113. 路径总和 II 437. 路径总和 III
目录112. 路径总和113. 路径总和 II437. 路径总和 III112. 路径总和路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。对于一个根节点root,找它到某一点的路径和为sum的路径是否存在等价于:找它的子节点是否有到达叶节点的路径,使得路径和满足:路径和等于sum-root.val如果这个节点已经是叶节点了,只要对比改点的值和sum被它的亲节点减去val之后
2020-07-07 20:37:05
192
原创 LeetCode 204. 计数质数 263. 丑数 264. 丑数 II
目录204. 计数质数263. 丑数264. 丑数 II 204. 计数质数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。此题最为核心的问题为:怎么判断一个数是否为质数?什么是质数?质数即为“除了1和自身外没有其他因数”的数,即:只能被1和自己整除的数所以,判断一个数是否为质数,只要遍历比它小的所有数,能否整除它就好了! public boolean help(int
2020-07-06 16:38:26
309
原创 LeetCode 509. 斐波那契数 70. 爬楼梯
509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fibonacci-number一眼望去非常简单,递归几行解决问题class Solu
2020-07-05 17:14:50
273
原创 温故而知新————Java那些事儿(一)
多维数组数组可以定义为0长度,虽然不能存数,没啥用它不等于null int[] b=new int[0]; System.out.println(b==null);//false b=new int[10]; System.out.println(Arrays.toString(b));//10个0在Java中,以二维数组为例,其实是“数组的数组”这就意味着:“二维数组中可以保存多个长度不一的数组”换句话说:二维数组中每一行的长度可以不同
2020-07-05 11:00:59
185
原创 LeetCode 605 735 ——————种花问题 & 行星碰撞
#目录种花问题方式一方式二官方题解行星碰撞 605. 种花问题假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/can-place-
2020-06-29 20:59:58
291
1
原创 狂神Java学习笔记————MySQL(六)————JDBC和数据库连接池
JDBCJava数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。java.sqljavax.sql导入mysql-connector-java-5.1.49在idea中点击flie-projectstructuremodules-dependenc
2020-06-25 17:32:05
1988
原创 狂神Java学习笔记————MySQL(五)————事务,索引,用户管理,数据库备份和规范数据库数据(三大范式)
事务要么都成功,要么都失败(类似try代码块?)一一一一一一一一一一一一一A给B转账SQL1 A账面转出SQL2 B账面收到一一一一一一一一一一一一一若SQL2执行时或执行前出现错误,则SQL1也不生效,否则,A账面白白减少。事务原则:ACID原则:原子性,一致性,隔离性,持久性(脏读,幻读)原子性:对于一个事务中的多个动作,要么都成功要么都失败,不可分离一致性:针对一个事务操作前与后的状态一致持久性:事务结束后的数据不会因外界原因导致数据丢失(若事务没有提交则应该恢复原状,否则保
2020-06-23 21:59:44
432
原创 狂神Java学习笔记————MySQL(四)————嵌套查询,分组和过滤,函数和MySQL中的md5加密
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2020-06-22 21:58:38
276
原创 狂神Java学习笔记————MySQL(二)————where子句,联表查询,分页和排序
where 条件子句逻辑运算符运算符语法描述and &&a and b a&&b逻辑与,ab都为真则为真,否则为假or ||a or b a||b逻辑或,ab都为假则为假,否则为假Not !not a !a逻辑非,a为真则假,a为假则真尽量使用户英文字母-- 查询成绩在95到100之间学生的成绩SELECT `StudentId` , `StudentResult` FROM `result`WHE
2020-06-19 17:58:40
262
原创 狂神Java学习笔记————MySQL(二)————外键和数据库数据的增删改查
外键外键可以理解为两个表在现实世界中的一种联系在数据库中的体现。比如:学生信息表和班级表存在联系:一个学生必须且只能在一个存在的班级,一个班级可以有很多学生(一对多)教师信息表和班级表存在联系:老师必须教的是存在的班级,一个班级对应多个老师,一个老师也可能对应多个班级(多对多)以下方式一、二为物理外键,即数据库级别的外键,并不推荐使用!外键定义:方式一:创建表时添加约束-- 主表班级CREATE TABLE IF NOT EXISTS `class`( `id` INT(
2020-06-18 21:29:12
303
原创 狂神Java学习笔记————MySQL(一)————数据类型、字段属性和基本操作语句(上)
基本命令行修改密码UPDATE mysql.user SET aunthentication_string=PASSWORD('123456') WHERE USER='root' AND HOST='localhost';--更改用户名为root的密码flush privileges; --刷新权限所有语句都以;结尾。-- 单行注释/*多行注释*/SHOW DATABASES; -- 查看所有数据库USE school;-- 切换数据库SHOW TABLES;-- 查看当
2020-06-17 23:19:27
337
原创 狂神Java学习笔记————JavaScript(三)————DOM操作和jQuery
需要注意:关于节点(Node)和元素(Element)getElement和getElementsDOMDOM:文档对象模型浏览器网页就是一个DOM树形结构对DOM节点进行增删改查获取DOM节点注意:Element是直接获取节点,即在接下来可以直接通过"."对节点进行操作,而Elements是获取一个节点数组,即使满足条件的节点只有一个,也需要取出数组中的第i个来真正取得节点。 //标签选择器 let h1=document.getElementsBy
2020-06-15 21:10:51
871
1
原创 狂神Java学习笔记————JavaScript(三)————面向对象和BOM
面向对象JavaScript、Java、C#。。。。面向对象;JavaScript有些区别类:模版对象:具体的实例在JavaScript中有所不同
2020-06-14 19:47:43
573
狂神Java学习笔记————前端入门——html、css、JavaScript学习代码
2020-06-17
hyx's Snake.jar
2020-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人