自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode每日随机2021/4/30

题思最近很难遇到做不出来的题了,有点没意思。。。leetcode435贪心,先按照右区间从小到大排个序,依次看能不能加入,只要当前左区间大于等于上一个的右区间就能加入,而且这个一定是最优解。leetcode1754贪心,显然谁的第一个字母大就加谁,如果相等,则看他们的后一个字母谁大,再相同就再看后一个……所以写了一个方法判断两个字符串谁大。leetcode1292纯暴力居然也能过啊。代码leetcode435class Solution { public int er

2021-04-30 15:54:46 129 1

原创 Leetcode每日随机2021/4/29

题思leetcode134按照规则从每一个加油站走一遍就行了。leetcode914做一个个数统计,然后求所有个数的最大公约数。leetcode1249就一个栈呗,能不能搞点有难度的题啊。代码leetcode134class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { for (int i = 0; i < cost.length; i++) { if (cost[i]

2021-04-29 16:17:13 161

原创 Leetcode每日随机2021/4/28

题思leetcode93普通DFS。leetcode1551这是在逗我吗?这是中等题?这也太傻比了leetcode1154傻卵,考常识?代码class Solution { private List<List<String>> res = new ArrayList<List<String>>(); private Stack<String> stack = new Stack<String>();

2021-04-28 15:45:00 199

原创 Leetcode每日随机2021/4/27

题思leetcode1631bfs暴力解的,记录到达当前节点的最小的体力值消耗,直至所有节点不在有更新(队列为空)。leetcode1356弱智题。代码leetcode1631class Solution { public int minimumEffortPath(int[][] heights) { Map<String, Integer> map = new HashMap<String, Integer>(); Queue<Str

2021-04-27 20:50:41 81

原创 Leetcode每日随机2021/4/26

题思leetcode1005每次取最小的就行,小根堆。leetcode1655还是费了一些时间,一开始想着是不是能直接贪心做,搞了半天发现不行的。后来dfs暴力就过了,还是数据量比较小。代码leetcode1005class Solution { public int largestSumAfterKNegations(int[] A, int K) { Queue<Integer> queue = new PriorityQueue<Integer&g

2021-04-26 17:03:10 92

原创 Leetcode每日随机2021/4/25

题思leetcode1018被5整除无非就是个位是0或者5,因此我们每次都记录一下个位数是什么就行了。剑指offer21一开始另开了一个数组,过了,而且效率很高。但是又看了一下题意,调整的意思应该是原地,所以又写了一个空间复杂度是O(1)的版本,按理说时间复杂度也是O(n),为什么跑出来的效果差这么多呢。代码leetcode1018class Solution { public List<Boolean> prefixesDivBy5(int[] A) { Lis

2021-04-25 16:08:58 84

原创 Leetcode每日随机2021/4/24

题思leetcode732不长记性啊,还是没做出来。其实跟我的日程安排2是一样的。确实秀,但是我还是忘了。官方题解写的很漂亮。剑指offer38普通的深搜就能过,数据范围太小了。代码leetcode732class MyCalendarThree { Map<Integer, Integer> map = new TreeMap<Integer, Integer>(); public MyCalendarThree() { } publi

2021-04-24 17:18:39 101

原创 Leetcode每日随机2021/4/23

题思leetcode804脑瘫题leetcode118又是一道脑瘫题代码leetcode804class Solution { String[] morse = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", "

2021-04-23 16:57:42 97

原创 Leetcode每日随机2021/4/22

题思今天碰到两道简单啊leetcode160我并没有完全按照要求做,还是开了set。如果空间复杂度O(1)的话这题可真不是简单题。题解中O(1)的做法确实很秀。leetcode929傻逼题代码leetcode160/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { *

2021-04-22 16:22:07 125

原创 Leetcode每日随机2021/4/21

题思leetcode679我放弃的比我想象的要快。5分钟,大概就放弃了。看了题解并不难,只是一个穷举。题解。leetcode620SQL题又来了,这题也太蠢了吧。代码leetcode679class Solution { private double min = 1e-6; public boolean judgePoint24(int[] nums) { List<Double> list = new ArrayList<Double>()

2021-04-21 16:36:05 89

原创 Java并发编程核心包——JUC

JUC初步作者:李晶晶;日期:2021年4月20日;学习视频:2020权威_juc 与 jvm 并发编程 Java 必学_阳哥- 尚硅谷文章目录JUC初步初识Lock抢票案例生产者消费者问题使用Lock解决生产者消费者问题Condition的精准唤醒轮流打印案例线程安全的集合类线程安全的List线程安全的Set线程安全的MapCallable接口Callable与FutureTaskJUC中的一些工具CountDownLatchCyclicBarrierSemaphore读写锁使用案例阻塞队列p

2021-04-20 21:17:14 637

原创 Leetcode每日随机2021/4/20

题思leetcode815就普普通通一道广搜的题,这也算困难吗面试题17.17我就把每个字母的位置都记录了一遍,一个个比对过去,居然也过了代码leetcode815class Solution { public int numBusesToDestination(int[][] routes, int source, int target) { int minBuses = -1; List<Set<Integer>> list = new Arr

2021-04-20 16:26:43 101

原创 Leetcode每日随机2021/4/19

题思面试题17.14堆leetcode1091就是一道普普通通的bfs,额外记录一下当前步数即可代码面试题17.14class Solution { public int[] smallestK(int[] arr, int k) { Queue<Integer> queue = new PriorityQueue<Integer>((a, b) -> b - a); for (Integer i : arr) { queue.off

2021-04-19 17:29:41 93

原创 MySQL进阶(一)——索引

MySQL进阶(一)——索引视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;MySQL版本:5.7.33;文章目录MySQL进阶(一)——索引索引介绍索引语法explain索引优化索引失效索引介绍# 介绍# 索引:排好序的快速查找数据结构/* 若无特别指明,通常意义上的索引都是指B树索引 聚集索引、复合索引、前缀索引、唯一索引等默认都是使用B+树索引 还有哈希索引*/# 索引的优势/* 1

2021-04-18 21:49:23 121

原创 Leetcode每日随机2021/4/18

题思今天这两题都是树,写的不是很满意,又臭又长的leetcode1325我是这样想的:把val为target的节点和他们的父节点都找出来放到一个列表里把target叶子节点从列表中刹车农户,同时其val设为0把val为0的孩子置为null重复23直至列表大小不在变化leetcode95我是这样想的:5. 先把n的全排列全算一遍6. 按照每一种排列的顺序构造一颗二叉搜索树7. 因为可能重复(同一种排列构造出来的二叉搜索树是一样的,如213和231),用扩充二叉树唯一标识一棵

2021-04-18 18:04:19 117

原创 Leetcode每日随机2021/4/17

题思每天两道吧,一道有点少。leetcode363看了题解,dp。主要是有一个小技巧没想到,dp[i][j]代表从0,0开始到i,j的和,那么对于每一个区间[row1,row2,col1,col2]而言,sum = dp[row2][col2] - dp[row1][col2] - dp[row2][col1] + dp[row1][col1],边界情况考虑一下即可。时间复杂度O(m^2 n^2)leetcode299这题就比较简单了,直接做一个数字个数的统计就行了。代码leetco

2021-04-17 16:10:10 108

原创 Leetcode每日随机2021/4/16

题思又来数学题啊,这打死我也做不出来啊,5种进位情况分类讨论,真有你的。思路参考自此题解,这位老哥直接给5中分类画了个表,很清楚。代码class Solution { public int[] addNegabinary(int[] arr1, int[] arr2) { if (arr1.length == 1 && arr1[0] == 0) { return arr2; } if (arr2.length == 1 && arr2

2021-04-16 16:58:25 90

原创 Leetcode每日随机2021/4/15

题思深搜暴力解的代码class Solution { Stack<int[]> stack = new Stack<int[]>(); int max = 0; public int maximumRequests(int n, int[][] requests) { dfs(requests, 0, n); return max; } private void dfs(int[][] requests, int idx, int n) {

2021-04-15 16:18:30 77

原创 MySQL基础(七)——存储过程与函数

MySQL基础(七)——存储过程与函数视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;sql版本:5.7.33;文章目录MySQL基础(七)——存储过程与函数变量存储过程函数流程控制变量# 系统变量# 可分为全局变量和会话变量# 查看所有全局变量SHOW GLOBAL VARIABLES;# 查看所有会话变量SHOW SESSION VARIABLES;# 或者(一般来说不写global或者

2021-04-14 17:35:55 155

原创 Leetcode每日随机2021/4/14

题思最优策略就是每次都拿aliceValue+bobValue最高的。这题很土味。代码class Solution { public int stoneGameVI(int[] aliceValues, int[] bobValues) { int aliceScore = 0, bobScore = 0; int[][] value = new int[aliceValues.length][3]; for (int i = 0; i < value.length;

2021-04-14 16:00:21 124

原创 Leetcode每日随机2021/4/13

题思代码参考自这位大神的题解求最长公共子序列,dp.告诉我内存超了,我改成O(n)级别。又告诉我时间超了。我觉得n^2也还行啊,也就一亿。就非得nlogn才能彰显你是困难难度呗。代码class Solution { public int minOperations(int[] target, int[] arr) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (

2021-04-13 20:23:04 125

原创 MySQL基础(六)——视图

MySQL基础(六)——视图视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;sql版本:5.7.33;文章目录MySQL基础(六)——视图视图视图# 视图# 如果一个查询语句经常使用到,我们可以将其保存为视图# 视图与表不同之处在于,表是保存数据的,视图保存的是sql逻辑# 假设员工名和其部门名经常用到SELECT e.last_name, d.department_nameFROM emp

2021-04-12 21:54:38 128

原创 Leetcode每日随机2021/4/12

题思其实我觉得我这代码效率应该是可以的,只遍历了一遍p;但是跑出来结果并不好看,很奇怪;思路就是两个指针start和end,end-start+1就是当前字符串的长度,每次只保存最长的字符串也就是个数。最后把以每个字母开头的最长有效字符串的长度加起来就是结果。个人还是比较满意今天的代码的。代码class Solution { public int findSubstringInWraproundString(String p) { Map<Character, Integ

2021-04-12 16:52:10 127

原创 MySQL基础(五)——事务

MySQL基础(五)——事务视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;sql版本:5.7.33;文章目录MySQL基础(五)——事务创建事务事务的隔离级别创建事务# 事务:一个或者一组sql语句视为一个执行单元,要么全部成功,要么全部失败;/* 事务的ACID属性: 原子性(Atomicity):事务是一个不可分割的工作单位,要么发生,要么不发生; 一致性(Consistency):事务必须使

2021-04-11 22:04:06 98

原创 Leetcode每日随机2021/4/11

题思这题也没啥好说的,就是中序遍历一遍就完事儿了。代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { private List<TreeNode>

2021-04-11 15:56:40 94

原创 Leetcode每日随机2021/4/10

题思这不是数学题么。出现一次的能力值位置必相同,直接加一;位置不同的能力值我试了一下1,2,3,4的全排列,期望也都是1;所以直接把数组去个重,统计一下个数就行了。其实是比较好解释的,假设有5个1,A第一个位置的1和B第一个位置的1是同一个1的概率是1/5,对于第二个位置,第三个位置……都是1/5,所以期望就是1.代码class Solution { public int expectNumber(int[] scores) { Set<Integer> set =

2021-04-10 20:00:48 127

原创 Leetcode每日随机2021/4/9

题思也是看了一眼就知道做不出来的题。代码参考自官方题解.其实不是那么难,正如题解中所说,就是求最大上升子序列的一个变种。代码class Solution { public int minDeletionSize(String[] strs) { int len = strs[0].length(); int[] dp = new int[len]; Arrays.fill(dp, 1); for (int i = 1; i < dp.length; i++) {

2021-04-09 15:47:11 76

原创 MySQL基础(四)——DDL

MySQL基础(四)——DDL视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;MySQL版本:5.7.33;文章目录MySQL基础(四)——DDL库的管理表的管理数据类型常见约束库的管理# 库的管理# 创建库CREATE DATABASE books;# 一般会这样写来避免库已经存在CREATE DATABASEIF NOT EXISTS books;# 修改库# 修改字符集ALTER

2021-04-08 19:49:57 165

原创 MySQL基础(三)——DML

MySQL基础(三)——DML视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;MySQL版本:5.7.33;文章目录MySQL基础(三)——DML插入语法删除语法修改语法插入语法USE myemployees;# 插入语法# 方式一INSERT INTO beauty (NAME, phone)VALUES ('高圆圆', '110');# 插入多条INSERT INTO beauty (

2021-04-08 19:48:26 103

原创 Leetcode每日随机2021/4/8

题思贪心,简单来说就是找到A中比B[i]大一点点的那个数,找不到就用当前可用的最小的数。A可以先排一下序,然后二分来找。代码class Solution { public int[] advantageCount(int[] A, int[] B) { Arrays.sort(A); boolean[] used = new boolean[A.length]; int[] res = new int[A.length]; for (int i = 0; i < B

2021-04-08 15:52:09 117

原创 Leetcode每日随机2021/4/7

题思这题题目这么长,但是其实难度不大。就按照题目的意思走一遍就行了,PriorityQueue真是好用。这题没什么意思。代码class Solution { public int getNumberOfBacklogOrders(int[][] orders) { Queue<int[]> buy = new PriorityQueue<int[]>((a, b) -> b[0] - a[0]); Queue<int[]> sell

2021-04-07 15:07:22 109

原创 Leetcode每日随机2021/4/6

题思做不出来,看了官方题解.一看就想着用堆做,结果空间上通不过。题目标签那还写着堆呢,搞毛啊。答案也是食之无味,总觉得不是个好方法。代码class Solution { public int smallestDistancePair(int[] nums, int k) { Arrays.sort(nums); int low = 0, high = nums[nums.length - 1] - nums[0]; while (low < high) { i

2021-04-06 16:27:26 86

原创 MySQL基础(二)——DQL

MySQL基础(二)——DQL视频学习来源:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷;作者:木子六日;MySQL版本:5.7.33;文章目录MySQL基础(二)——DQL基础查询条件查询排序查询分组查询sql92语法的等值连接sql92语法的非等值连接和自连接sql99语法的内连接sql99语法的外连接子查询分页查询联合查询基础查询USE myemployees;# 基础查询# 查询单个字段SELECT last_nam

2021-04-05 20:41:54 109

原创 MySQL基础(一)——常用函数

sql基础(一)——常用函数视频学习来源:sql_基础+高级篇- 数据库 -sql -sql教程_sql视频_sql入门_尚硅谷;作者:木子六日;MySQL版本:5.7.33;文章目录sql基础(一)——常用函数字符函数数学函数日期函数统计函数流程控制函数其他函数字符函数USE myemployees;# 字符函数# length 返回字符的字节长度SELECT LENGTH('ljj');SELECT LENGTH('李晶晶');# concat 拼接字符SELEC

2021-04-05 20:36:23 236

原创 Leetcode每日随机2021/4/5

题思写成这样也能过啊,今天额外宽容。。就把所有可能枚举了一下,有效的筛出来,set去下重。。代码class Solution { public List<String> generateParenthesis(int n) { Set<String> set = new HashSet<String>(); getAllValid(n, set, ""); return new ArrayList<String>(set);

2021-04-05 15:28:55 105 1

原创 Leetcode每日随机2021/4/4

题思参考了这篇题解我真是个菜逼。转移方程dp[i][j] = dp[i-1][j] + dp[i][i-coin[i]];dp[i][j]表示用前i种硬币表示数额j的所有方案数;所以举个例子:用四种币值表示100的所有方案数=用三种币值表示100+用四种币值表示75.因为75的表示中是包含了50的表示的,50的表示中包含了25的表示,所以这个方程是成立的。只要我们币值顺序算,那么二维数组是可以化简成一位数组的(因为币值小的先算,数额小的也先算)。代码class Solution {

2021-04-04 17:31:22 145

原创 Leetcode每日随机2021/4/3

题思dp不管拆成几段,都是从拆成两段开始。那就算出拆成哪两段是最大的。代码class Solution { public int integerBreak(int n) { if (n == 2 || n == 3) { return n - 1; } int[] dp = new int[60]; dp[2] = 2; dp[3] = 3; for (int i = 4; i <= n; i++) { for (int j = 1; j &l

2021-04-03 19:10:47 116

原创 Leetcode每日随机2021/4/1

题思B[3]就是A[3]左边的数的乘积再乘上A[3]右边的数的乘积,而左侧的乘积和右侧的乘积又可以用dp一次遍历来算。代码class Solution { public int[] constructArr(int[] a) { if(a.length == 0) { return new int[]{}; } int[] dpLeft = new int[a.length]; int[] dpRight = new int[a.length]; in

2021-04-01 21:43:01 89

空空如也

空空如也

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

TA关注的人

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