04 2022 档案

摘要:题目表述 给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 。 示例: 输入: words = ["abcw","baz","foo","bar","xtf 阅读全文
posted @ 2022-04-26 09:38 YoungerWb 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目表述 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例1: 输入: s = "leetcode" 输出: false 位运算 题目比较简单,可以采用数组、map、set等用来作为辅助空间解决这道题。但是还有更好的解决办法。 可以使用一个int类型的变量来存储string数组中所出 阅读全文
posted @ 2022-04-25 21:06 YoungerWb 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目表述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 二分查找 从题目可以看出,矩阵的每一行是递增的,每行的第一个元素大于前一行的最后一个元素,所以每列也是递增的。 对矩阵最后一 阅读全文
posted @ 2022-04-23 23:49 YoungerWb 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 模拟 首先初始化矩阵的四个边界(上下左右) 然后依次遍历最顶行(边界更新,highindex + 1)->最右列(边界更新,rightIndex - 1)->最底行(边界更新,low - 1) 阅读全文
posted @ 2022-04-23 23:36 YoungerWb 阅读(20) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 广度优先搜索 首先让根节点入队列,然后遍历队列。 每次循环开始,计算出队列大小,当前的队列大小size就是每一层的节点数。循环这size个节点,依次弹出队列,然后判断当前节点的左右节点时候为 阅读全文
posted @ 2022-04-23 23:27 YoungerWb 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题目表述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 扫描 该题可以直接用双层for循环暴力解决,时间复杂度为0(nm),也可以用for循环嵌套二分查找,时间复杂度为0(n 阅读全文
posted @ 2022-04-20 19:59 YoungerWb 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目表述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] **输出:** 阅读全文
posted @ 2022-04-20 19:51 YoungerWb 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。 返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。 示例: 阅读全文
posted @ 2022-04-19 20:21 YoungerWb 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例: 输入: grid = [ ["1","1","1","1","0"] 阅读全文
posted @ 2022-04-19 20:10 YoungerWb 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 阅读全文
posted @ 2022-04-19 19:56 YoungerWb 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一直都对IO多路复用搞不清楚,写篇文章将所看到的内容记录一下,防止遗忘。 IO多路复用 IO多路复用就是使用内核机制来轮询一组文件描述符,监视这写fd是否有IO事件发生,如果有IO发生程序会被告之。 IO 多路复用的方式主要有 select、poll、epoll,这三个函数都会进行阻塞,所以可以放在 阅读全文
posted @ 2022-04-19 19:20 YoungerWb 阅读(185) 评论(0) 推荐(0) 编辑
摘要:题目表述 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例: **输入:**nums = [2,3,1,1,4] **输出:**true **解释:**可以先跳 1 步,从下标 0 到达下标 阅读全文
posted @ 2022-04-18 13:08 YoungerWb 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left ⇐ right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 头插法 头插法也可以叫穿针引线法。可以初始化两个指针,fast 和 slow。slow与fast差一个节 阅读全文
posted @ 2022-04-18 13:06 YoungerWb 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例: **输入:**x = 4 **输出:**2 二分法 二分 阅读全文
posted @ 2022-04-18 13:06 YoungerWb 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题目表述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4 输出: True 说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3) 阅读全文
posted @ 2022-04-17 22:52 YoungerWb 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例: 归并排序 归并排序本质,递归加合并两个有序链表。 利用快慢指针,找到链表中点,以中点为边界,将链表拆分成为两个子链表。 对两个子链表分别进行排序。 将两个排序后的子链表合并,得到完整的排序后的链表。可以使用 阅读全文
posted @ 2022-04-17 19:19 YoungerWb 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目表述 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。 偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增 奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 阅读全文
posted @ 2022-04-17 11:41 YoungerWb 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目表述 把符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... 阅读全文
posted @ 2022-04-17 10:16 YoungerWb 阅读(54) 评论(0) 推荐(0) 编辑
摘要:什么是单例模式? 单例模式就是保证一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。 如何实现单例模式 因为保证一个类只能有一个实例,不能多次实例化,不能允许用户new对象,所以需要将构造方法私有化,通过提供类的方法来让外部获取对象实例 单例模式主要存在两种方式实现:饿汉式和懒汉式 饿汉式 阅读全文
posted @ 2022-04-16 21:58 YoungerWb 阅读(54) 评论(0) 推荐(0) 编辑
摘要:什么是JMM? 在了解JMM之前,先了解下为什么提出了JMM。 CPU缓存,在多核CPU的情况下,带来了可见性问题 操作系统对当前执行线程的切换,带来了原子性问题 编译器指令重排优化,带来了有序性问题。 JMM 即Java内存模型,也就是Java Memory Model,简称JMM,本身是一种抽象 阅读全文
posted @ 2022-04-16 21:16 YoungerWb 阅读(274) 评论(0) 推荐(0) 编辑
摘要:Volatile关键字 使用锁的方式可以解决共享变量内存可见性问题,但是使用锁太笨重,因为它会带来线程上下文的切换开销。对于解决内存可见性问题,Java还提供了一种弱形式的同步,就是Volatile关键字。该关键字可以确保对一个变量的更新对其他线程马上可见。当一个变量被声明为volatile时,线程 阅读全文
posted @ 2022-04-16 20:39 YoungerWb 阅读(71) 评论(0) 推荐(0) 编辑
摘要:题目表述 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例: **输入:**s = "(1+(4+5+2)-3)+(6+8)" **输出:**23 双栈解法 使用两个栈numsStack和o 阅读全文
posted @ 2022-04-16 19:18 YoungerWb 阅读(119) 评论(0) 推荐(0) 编辑
摘要:题目表述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意 阅读全文
posted @ 2022-04-12 14:22 YoungerWb 阅读(91) 评论(0) 推荐(0) 编辑
摘要:题目表述 有 n 个网络节点,标记为 1 到 n。 给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。 现在,从某个节点 K 发出一个信号。需要多久才能 阅读全文
posted @ 2022-04-12 10:43 YoungerWb 阅读(132) 评论(0) 推荐(0) 编辑
摘要:并查集 主要用来解决连通性问题,将所有节点构成一棵树,并最终均指向一个root节点。通过判断root节点是否相同来判断两节点是否连通。 class unionNode{ int[] parents; public unionNode(int N){ parents = new int[N]; for 阅读全文
posted @ 2022-04-12 10:25 YoungerWb 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目表述 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。 二分法 阅读全文
posted @ 2022-04-12 10:21 YoungerWb 阅读(65) 评论(0) 推荐(0) 编辑
摘要:题目表述 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O(log n) 的算法来解决此 阅读全文
posted @ 2022-04-11 14:44 YoungerWb 阅读(35) 评论(0) 推荐(0) 编辑
摘要:import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class boo 阅读全文
posted @ 2022-04-01 10:29 YoungerWb 阅读(67) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示