![](https://img-blog.csdnimg.cn/20210625230656108.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
该栏目会以数据结构为核心,衍生出来的春招秋招或者算法比赛等一系列题目详解
吹笛少年
这个作者很懒,什么都没留下…
展开
-
二分法相关题型与解题思路
第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。 示例 1: 输入.原创 2021-07-09 11:46:51 · 230 阅读 · 0 评论 -
91-解码方法
一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为: "AAJF" ,将消息分组为 (1 1 10 6) "KJF" ,将消息分组为 (11 10 6) 注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。 给你一个只含原创 2021-07-08 21:37:17 · 116 阅读 · 0 评论 -
String.join()方法使用,附测试用例
String.join()方法使用 最近在刷leetcode中的翻转字符串,使用了String.join()对双端队列通过空格进行分割,解法使用了String.join()方法。好奇心驱动,查了一下: delimiter是定界符的意思,表示连接的符号,后面那个为字符序列元素,表示被连接的数组(也可以是集合),或者是要连接的多个字符串 测试了一下demo: public class Hello { public static void main(String[] args) { // TODO Aut原创 2021-07-04 10:08:22 · 490 阅读 · 1 评论 -
407 · 加一 与 1300 · 巴什博弈
407 · 加一 描述 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照数位高低进行排列,最高位的数在列表的最前面。 样例 样例 1: 输入:[1,2,3] 输出:[1,2,4] 样例 2: 输入:[9,9,9] 输出:[1,0,0,0] 题解: public class Solution { /** * @param digits: a number represented as an array of digits * @return原创 2021-06-29 23:52:19 · 61 阅读 · 0 评论 -
1347 · 尾随零与487· 姓名去重
1347 · 尾随零 描述 给定一个整数n,返回n!(n的阶乘)的尾随零的个数。 您的解法时间复杂度应为对数级别。 样例 样例1 输入: n = 5 输出: 1 解释: 1*2*3*4*5=120 样例2 输入: n = 10 输出: 2 解释: 1*2*3*4*5*6*7*8*9*10=3628800 解题思路:题目要求找尾随的0的个数,2和5相乘能产生0,在计算阶乘的过程中,只要知道有多少个2 x 5就能得到结论,2的个数比5会多出很多,这样只要计算出5的个数就可以了。 解法: public c原创 2021-06-26 00:28:23 · 117 阅读 · 0 评论