![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
万家林
热爱大数据和AI的一名在职大数据开发工程师
展开
-
二叉树的最大深度(Java算法每日一题)
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。输入:[3,9,20,null,null,15,7]给定一个二叉树,找出其最大深度。原创 2022-10-26 10:28:49 · 369 阅读 · 1 评论 -
链表的中间结点(Java算法每日一题)
给定一个头结点为 head 的非空单链表,返回链表的中间结点。输出:此列表中的结点 3 (序列化形式:[3,4,5])如果有两个中间结点,则返回第二个中间结点。输入:[1,2,3,4,5]原创 2022-10-25 13:15:21 · 293 阅读 · 0 评论 -
二进制链表转整数(Java算法每日一题)
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值。输入:head = [1,0,1]原创 2022-10-24 10:58:55 · 349 阅读 · 0 评论 -
解码字母到整数映射(Java算法每日一题)
给你一个字符串 s,它由数字(‘0’ - ‘9’)和 ‘#’ 组成。字符(‘j’ - ‘z’)分别用(‘10#’ - ‘26#’)表示。字符(‘a’ - ‘i’)分别用(‘1’ - ‘9’)表示。输入:s = “10#11#12”返回映射之后形成的新字符串。题目数据保证映射始终唯一。原创 2022-10-21 09:45:16 · 218 阅读 · 0 评论 -
转换成小写字母(Java算法每日一题)
问:给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。输入:s = “Hello”输出:“hello”原创 2022-10-19 09:15:36 · 126 阅读 · 0 评论 -
找到所有数组中消失的数字(Java算法每日一题)
问:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。输入:nums = [4,3,2,7,8,2,3,1]原创 2022-10-14 09:11:07 · 189 阅读 · 0 评论 -
数组的度(Java算法每日一题)
给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。输入:nums = [1,2,2,3,1]原创 2022-10-13 09:11:52 · 86 阅读 · 0 评论 -
错误的集合(Java算法每日一题)
集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。给定一个数组 nums 代表了集合 S 发生错误后的结果。输入:nums = [1,2,2,4]原创 2022-10-11 09:55:50 · 124 阅读 · 0 评论 -
找不同(Java算法每日一题)
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。输入:s = “abcd”, t = “abcde”给定两个字符串 s 和 t ,它们只包含小写字母。请找出在 t 中被添加的字母。原创 2022-10-11 09:54:04 · 158 阅读 · 0 评论 -
设计 Goal 解析器(Java算法每日一题)字符串替换函数
请你设计一个可以解释字符串 command 的 Goal 解析器。command 由 “G”、“()” 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、“()” 解释为字符串 “o” ,“(al)” 解释为字符串 “al”。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。输入:command = “G()(al)”原创 2022-10-10 16:27:20 · 75 阅读 · 0 评论 -
重塑矩阵(Java算法每日一题)
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。否则,输出原始矩阵。输入:mat = [[1,2],[3,4]], r = 1, c = 4。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。答:先转换成一位数组,再转换成二维数组。输出:[[1,2,3,4]]原创 2022-10-10 15:44:06 · 80 阅读 · 0 评论 -
矩阵对角线元素的和(Java算法每日一题)
请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。原创 2022-10-10 15:30:33 · 161 阅读 · 0 评论 -
最富有客户的资产总量(Java算法每日一题)
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。输入:accounts = [[1,2,3],[3,2,1]]原创 2022-10-10 15:17:31 · 323 阅读 · 0 评论 -
移动零(Java算法每日一题)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]原创 2022-10-10 14:31:40 · 62 阅读 · 0 评论 -
缀点成线(Java算法每日一题)斜率公式
给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]原创 2022-10-10 14:04:39 · 543 阅读 · 0 评论 -
下一个更大元素 I(Java算法每日一题)
对于每个 0原创 2022-10-10 13:43:02 · 164 阅读 · 0 评论 -
N 叉树的前序遍历(Java算法每日一题)
n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔。给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历。输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4]答:前序遍历 根->左->右。原创 2022-10-10 10:48:05 · 171 阅读 · 0 评论 -
二叉树的前序遍历(Java算法每日一题)
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。输入:root = [1,null,2,3]输出:[1,2,3]原创 2022-10-10 10:40:10 · 98 阅读 · 0 评论 -
仅执行一次字符串交换能否使两个字符串相等(Java算法每日一题)
给你长度相等的两个字符串 s1 和 s2。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true;否则,返回 false。输入:s1 = “bank”, s2 = “kanb”原创 2022-10-10 09:39:08 · 160 阅读 · 0 评论 -
快乐数(Java算法每日一题)
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 n 是 快乐数 就返回 true;不是,则返回 false。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。编写一个算法来判断一个数 n 是不是快乐数。原创 2022-10-09 16:37:11 · 295 阅读 · 0 评论 -
判断能否形成等差数列(Java算法每日一题)
如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列。如果可以重新排列数组形成等差数列,请返回 true;否则,返回 false。输入:arr = [3,5,1]给你一个数字数组 arr。原创 2022-10-09 16:00:32 · 243 阅读 · 0 评论 -
数组元素积的符号(Java算法每日一题)
给你一个整数数组 nums。令 product 为数组 nums 中所有元素值的乘积。输入:nums = [-1,-2,-3,-4,3,2,1]返回 signFunc(product)。如果 x 是等于 0 ,返回 0。如果 x 是负数,返回 -1。如果 x 是正数,返回 1。答:不可以暴力去乘,会溢出。原创 2022-10-09 15:16:17 · 100 阅读 · 0 评论 -
找到最近的有相同 X 或 Y 坐标的点(Java算法每日一题)
同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, bi) 处有一个点。当一个点与你所在的位置有相同的 x 坐标或者相同的 y 坐标时,我们称这个点是 有效的。如果没有有效点,请返回 -1。两个点 (x1, y1) 和 (x2, y2) 之间的 曼哈顿距离 为 abs(x1 - x2) + abs(y1 - y2)。输入:x = 3, y = 4, points = [[1,2],[3,1],[2,4],[2,3],[4,4]]原创 2022-10-09 14:51:56 · 155 阅读 · 0 评论 -
三角形的最大周长(Java算法每日一题)
给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。输入:nums = [2,1,2]答:最大周长一定是排序后的相邻元素。原创 2022-10-09 14:07:51 · 103 阅读 · 0 评论 -
处理用时最长的那个任务的员工
idi 是处理第 i 个任务的员工的 id ,且leaveTimei 是员工完成第 i 个任务的时刻。所有 leaveTimei 的值都是 唯一的。注意,第 i 个任务在第 (i - 1) 个任务结束后立即开始,且第 0 个任务从时刻 0 开始。返回处理用时最长的那个任务的员工的 id。如果存在两个或多个员工同时满足,则返回几人中最小的id。输入:n = 10, logs = [[0,3],[2,5],[0,9],[1,15]]共有 n 位员工,每位员工都有一个从 0 到 n - 1 的唯一 id。原创 2022-10-09 13:29:50 · 69 阅读 · 0 评论 -
整数的各位积和之差(Java算法每日一题)
给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。输入:n = 234。原创 2022-10-09 10:32:46 · 285 阅读 · 0 评论 -
位1的个数(Java算法每日一题)
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。输入:00000000000000000000000000001011。原创 2022-10-09 10:17:53 · 151 阅读 · 0 评论 -
三个数的最大乘积(Java算法每日一题)
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。输入:nums = [1,2,3]原创 2022-10-08 13:33:31 · 237 阅读 · 0 评论 -
去掉最低工资和最高工资后的工资平均值(Java算法每日一题)
问:给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。输入:salary = [4000,3000,1000,2000]请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。输出:2500.00000。原创 2022-10-08 10:30:22 · 95 阅读 · 0 评论 -
在区间范围内统计奇数数目(Java算法每日一题)
问:给你两个非负整数 low 和 high。请你返回 low 和 high 之间(包括二者)奇数的数目。解释:3 到 7 之间奇数数字为 [3,5,7]。输入:low = 3, high = 7。原创 2022-10-08 10:14:51 · 316 阅读 · 0 评论 -
第三大的数(Java算法每日一题)数组
问:给你一个非空数组,返回此数组中 第三大的数。如果不存在,则返回数组中最大的数。解释:第三大的数是 1。输入:[3, 2, 1]原创 2022-10-08 10:04:43 · 230 阅读 · 0 评论 -
提莫攻击(Java算法每日一题)数组
输入:timeSeries = [1,4], duration = 2。原创 2022-09-30 16:50:43 · 340 阅读 · 0 评论 -
最大连续 1 的个数(Java算法每日一题)数组
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。输入:nums = [1,1,0,1,1,1]原创 2022-09-29 14:28:52 · 174 阅读 · 0 评论 -
判定是否互为字符重排(Java算法每日一题)
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。输入: s1 = “abc”, s2 = “bca”原创 2022-09-27 14:51:42 · 151 阅读 · 0 评论 -
杨辉三角(Java算法每日一题)集合
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]问:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。输入: numRows = 5。原创 2022-09-26 16:34:49 · 265 阅读 · 0 评论 -
删除链表中的节点(Java算法每日一题)
问:请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。例:输入:head = [4,5,1,9], node = 5输出:[4,1,9]答:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val原创 2021-11-02 13:54:45 · 142 阅读 · 0 评论 -
两整数之和(Java算法每日一题)
问:给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。例:输入:a = 1, b = 2输出:3答:class Solution { public int getSum(int a, int b) { while(b != 0) { int t = (a & b) << 1; a = a ^ b; b = t;原创 2021-09-28 17:18:26 · 296 阅读 · 0 评论 -
最后一个单词的长度(Java算法每日一题)
问:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。例:输入:s = “Hello World”输出:5答:class Solution { public int lengthOfLastWord(String s) { s = s.trim(); return s.length() - s.lastIndexOf(" ") - 1; }}原创 2021-09-24 11:13:53 · 116 阅读 · 0 评论 -
3的幂(Java算法每日一题)
问:给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x例:输入:n = 27输出:true答:class Solution { public boolean isPowerOfThree(int n) { int s = n; while(s != 0 && s % 3 == 0) {原创 2021-09-23 11:27:07 · 467 阅读 · 0 评论 -
Nim 游戏(Java算法每日一题)(一行)
问:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。例:输入:n = 4输出:false答:class Solution { public boolean canWinNim(int n) {原创 2021-09-18 17:29:54 · 346 阅读 · 0 评论