自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kafka客户端实践及实现原理剖析

Kafka客户端实践及实现原理剖析

2022-10-20 10:25:52 327

原创 Kafka术语及集群参数配置

2022-10-18 17:00:05 391

原创 设计原则与思想

设计原则及思想

2022-09-20 16:57:50 95

原创 设计原则与思想:面向对象

王争《设计模式之美》学习总结

2022-09-19 20:02:34 91

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

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...

2018-12-06 22:08:48 77

原创 线程状态

进入就绪状态的四种情况:start()方法阻塞状态->就绪状态yield()方法jvm本身从本地线程切换到其他线程进入阻塞状态的四种情况:sleep()方法 (仍然占有资源)wait()方法join()方法io操作 read,write方法(由操作系统调用)...

2018-11-14 11:28:40 70

原创 第3章 . 共享对象

1.Thread.yield与Thread.sleep.a. yield让出自己执行cpu的时间,使该线程进入就绪状态。此时该线程与其他线程具有相同的权利进行争用cpu的机会。b.sleep使自己进入阻塞状态。c.两种方式都不会释放自己的锁资源。d.进程运行图:阻塞—>就绪—>运行 2.重排序现象.3.只要数据需要被跨线程共享,就进行恰当的同步。4.可见性...

2018-11-10 21:07:00 167

原创 第2章 . 线程安全

1.引发线程安全问题的常见两种情况:a. 代码中有i++,即“读—改—写”b.if(mac!=null) new Mac() ,即“检查—执行”2.使用同步机制避免上述线程安全问题:a. java中具体用synchronized关键字阻塞线程。(会有性能问题)b.确保操作原子化,但同时注意,多个原子化的操作组合起来不一定是线程安全的。c.synchronized块为内部锁,...

2018-11-10 19:34:39 78

原创 46. 全排列

题目描述提示帮助提交记录社区讨论阅读解答给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] public List<List<Integer>> permute(int[] nums) { List<Lis...

2018-11-08 23:02:07 71

原创 279. 完全平方数

题目描述提示帮助提交记录社区讨论阅读解答给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路:子状态为:i<n,dp[i]为若干个完全平方...

2018-11-03 22:42:57 92

原创 413. 等差数列划分

如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果...

2018-10-27 23:56:57 109

原创 97. 交错字符串

给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false思路:1.状态为:dp[i][j]为s1前...

2018-10-26 00:52:04 172

原创 139. 单词拆分

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成...

2018-10-25 22:53:19 127

原创 91. 解码方法

题目描述提示帮助提交记录社区讨论阅读解答一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226”输出: 3解释: 它可以解码为...

2018-10-23 19:04:51 106

原创 编辑距离

给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘...

2018-10-15 22:34:50 90

原创 不同的二叉搜索树

给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2/ / \ ...

2018-10-15 20:24:35 75

原创 找树左下角的值

给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入:2/ 1 3输出:1示例 2:输入: 1 / \ 2 3 / / \4 5 6 / 7输出:7别人的代码,记录一下…public class FindBottomLeftValue { int ans=0,pre=0; public int findB...

2018-10-02 22:55:09 162

原创 重构字符串

给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例 1:输入: S = “aab”输出: “aba”示例 2:输入: S = “aaab”输出: “”注意:S 只包含小写字母并且长度在[1, 500]区间内。思路:首先,判断是否可以重构字符串,若某个字符出现的频率大于字符串长度的一半,就不能重构。难...

2018-10-01 10:11:11 616

原创 最小时间差

给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示。示例 1:输入: [“23:59”,“00:00”]输出: 1备注:列表中时间数在 2~20000 之间。每个时间取值在 00:00~23:59 之间。思路:把所有时间转换为分钟,插入数组,排序,依次计算差值,比较出最小时间差。注意:0点也是24点。对于每个时间点插入时可以多加24个...

2018-09-27 22:20:46 622

原创 翻转矩阵后的得分

有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,...

2018-09-26 23:19:35 105

原创 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = “ababcbacadefegdehijhklij”输出: [9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。像 “ababcbaca...

2018-09-25 23:22:56 251

原创 二叉树中第二小的节点

给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:2/ 2 5/ 5 7输出: 5说明: 最小的值是 2 ,第二小的值是 5 。示例 2:输入:2...

2018-09-24 01:17:22 213

原创 移掉K位数字

给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = “1432219”, k = 3输出: “1219”解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = “10200”, k ...

2018-09-22 00:27:16 509

原创 根据身高重建队列

假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]这...

2018-09-20 12:15:09 505

原创 分发糖果

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2:输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 ...

2018-09-16 00:09:12 410

原创 跳跃游戏 II

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。 说明:假设你总是可以到达...

2018-09-15 00:50:12 246

原创 通配符匹配

给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。 示例 1:输入: s = “aa” p ...

2018-09-13 20:54:07 478 1

原创 柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:...

2018-09-13 12:52:03 314

原创 最大子序和

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...

2018-09-12 22:27:20 77

空空如也

空空如也

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

TA关注的人

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