2021
23 posts-
每日LeetCode 56-57
56 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 57 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例:
-
每日LeetCode 53-55
53 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 54 请判断一个链表是否为回文链表。 示例 1: 55 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:
-
每日LeetCode 49-52
49 给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 50 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和...
-
每日LeetCode 45-48
45 统计所有小于非负整数 n 的质数的数量。 示例 1: 埃氏筛法:要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。 46 反转一个单链表。 示例: 47 给定两个字符串 s 和 t\,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t\...
-
每日LeetCode 40-44
40 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 41 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 42...
-
每日LeetCode 38-39
38 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 示例 1: 39 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:
-
每日LeetCode 37
37 给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。 函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <=...
-
每日LeetCode 36
36 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1:
-
每日LeetCode 35
35 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表:
-
每日LeetCode 34
34 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos...
-
每日LeetCode 33
33 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1:
-
每日LeetCode 30-32
30 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 31 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和...
-
每日LeetCode 29
29 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: > 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 最近在准备数学考试真的好烦啊!🙃
-
每日LeetCode 27-28
27 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 28 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡...
-
每日LeetCode 26
26 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
-
每日LeetCode 25
25 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1:
-
每日LeetCode 24
24 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。 示例 1:
-
每日LeetCode 18-23
18 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 19 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0...
-
每日LeetCode 11-17
11 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 12 给定一个只包括 '(',')','{','}','[',']'...
-
每日LeetCode 9-10
9 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做...
-
每日LeetCode 1-8
1 给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 示例 2: 示例 3: 示例 4: 2 给你一个数组 nums...
-
《群魔》与虚无主义
陀思妥耶夫斯基著作《群魔》,阅读时间为 2020 年 12 月 10 日至 2021 年 2 月 3 日,拖沓这么久主要还是因为中途直接和考试发生对撞,导致我根本没心思读要考试的书以外的书,每看一页都是煎熬,它就这么躺在我的 kindle 里直到没电。...
-
现代和弦代号
三和弦(triad) 由三个音组成的和弦。 七和弦(seventh chord) 由四个音组成的和弦。 九和弦(ninth chord) 由五个音组成的和弦。 十一和弦(eleventh chord) 由六个音组成的和弦。 十三和弦(thirteenth chord) 由七个音组成的和弦。 常用三大和弦家族...
2020
7 posts-
和Notion,讲讲我的记录方式
我是个很喜欢产品的人,无论是硬件和软件都令我着迷,给予晶体管和代码以生命是件浪漫的事。 最近,我开始了解 Notion,开始使用 Notion,并且,已经将我的日历,待办,笔记等记录方式主要在 Notion 上实现,我想以此展开,讲讲最近我用过的和在用的记录方式。以下内容均为主观看法。 OneDrive +...
-
Java 正则表达式
字符串是一个非常万能的类型,它不仅仅可以进行修改,还可以向各个数据类型进行转换,用户输入的信息基本上都用字符串接收。于是在向其他数据类型转换的时候,为了保证转换的正确性,往往要进行验证处理,如果仅靠字符串本身的方法是非常麻烦的,在这种情况下,就出现了正则表达式。 正则表达式从 Perl 语言发展而来。在 JDK...
-
Java 常用基础类库
StringBuffer 类 每一个字符串的常量都属于一个 String 类的匿名对象,不可更改。 String 有两个常量池:静态常量池、运行时常量池。 String 类对象实例化建议使用直接赋值的方式完成,这样可以将对象保存在对象池中,以便下次使用。...
-
深入多线程
停止线程 在多线程的操作之中,大多数情况下使用的是Thread的start(),如果对于多线程需要进行停止处理,Thread提供有stop(),但是其在 JDK 1.2开始就不被推荐使用了。要想停止线程,则需要选择一种柔和的形式。 万一有其他的线程控制 flag...
-
生产者消费者基本模型
模型概述 在多线程开发之中,最为著名的案例就是生产者与消费者操作。 流程 1. 生产者负责信息内容的生产。 2. 每当生产者完成一项完整的信息之后,消费者则取走信息。 3. 如果生产者没有结束,那么消费者应该等待它生产完成;如果消费者还没有对信息进行消费,那么生产者则应该等待消费者消费完成后再生产。 实现...
-
多线程同步与死锁
线程同步 在多线程的处理过程之中,可以利用 Runnable 描述多个线程操作的资源,在在描述这些资源的时候,如果处理不当就会产生数据的错误操作。 引出 一个简单的卖票程序,创建若干个线程对象来实现。 创建三个线程对象,这三个对象会进行五张票的出售。此时会出现问题,线程并不同步。 处理...
-
多线程常用操作方法
多线程的常用方法大多都在 Thread 类中定义了。 线程的命名与取得 多线程的运行状态是不确定的,如果想要获取到某一个特定的线程,就需要通过线程的名字来进行线程操作。所以线程的名称是一个很重要的概念,在 Thread 类中就提供有线程名称的方法。 构造方法:public Thread(Runnable...