- 博客(45)
- 收藏
- 关注
原创 逆波兰表达式求值
根据 逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例2:输入:tokens = ["4","13","5...
2022-02-11 19:22:43
149
原创 H 指数
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h指数。根据维基百科上h 指数的定义:h 代表“高引用次数”,一名科研人员的 h指数是指他(她)的 (n 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 n - h篇论文每篇被引用次数不超过 h 次。如果 h 有多种可能的值,h 指数 是其中最大的那个。示例 1:输入:citations = [3,0,6,1,5]输出:3解...
2022-02-10 18:53:36
276
原创 Day30——分组得分最高的所有下标
给你一个下标从 0 开始的二进制数组 nums ,数组长度为 n 。nums 可以按下标 i( 0 <= i <= n )拆分成两个数组(可能为空):numsleft 和 numsright 。numsleft 包含 nums 中从下标 0 到 i - 1 的所有元素(包括 0 和 i - 1 ),而 numsright 包含 nums 中从下标 i 到 n - 1 的所有元素(包括 i 和 n - 1 )。如果 i == 0 ,numsleft 为 空 ,而 numsright 将包含.
2022-02-08 11:45:50
651
原创 每日一题Day29——. 统计隐藏数组数目
给你一个下标从 0开始且长度为 n的整数数组differences,它表示一个长度为n + 1的隐藏数组相邻元素之间的差值。更正式的表述为:我们将隐藏数组记作hidden,那么differences[i] = hidden[i + 1] - hidden[i]。同时给你两个整数lower 和upper,它们表示隐藏数组中所有数字的值都在 闭区间[lower, upper]之间。比方说,differences = [1, -3, 4],lower = 1...
2022-01-25 15:21:31
98
原创 每日一题Day28——. 在线选举
给你两个整数数组 persons 和 times 。在选举中,第i张票是在时刻为times[i]时投给候选人 persons[i]的。对于发生在时刻 t 的每个查询,需要找出在t 时刻在选举中领先的候选人的编号。在t 时刻投出的选票也将被计入我们的查询之中。在平局的情况下,最近获得投票的候选人将会获胜。实现 TopVotedCandidate 类:TopVotedCandidate(int[] persons, int[] times) 使用persons 和 times ...
2022-01-24 15:53:46
92
原创 每日一题Day27——找到需要补充粉笔的学生编号
一个班级里有n个学生,编号为 0到 n - 1。每个学生会依次回答问题,编号为 0的学生先回答,然后是编号为 1的学生,以此类推,直到编号为 n - 1的学生,然后老师会重复这个过程,重新从编号为 0的学生开始回答问题。给你一个长度为 n且下标从 0开始的整数数组chalk和一个整数k。一开始粉笔盒里总共有k支粉笔。当编号为i的学生回答问题时,他会消耗 chalk[i]支粉笔。如果剩余粉笔数量 严格小于chalk[i],那么学生 i需要 补充粉笔。请你...
2022-01-20 11:54:25
99
原创 每日一题Day26——. 子集
给你一个整数数组nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素..
2022-01-19 13:28:11
86
原创 每日一题Day25—— 求众数 II
给定一个大小为n的整数数组,找出其中所有出现超过⌊ n/3 ⌋次的元素。示例1:输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2]提示:1 <= nums.length <= 5 * 104-109 <= nums[i] <= 109来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maj...
2022-01-18 19:51:02
84
原创 每日一题Day24——数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用补码运算方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。示例 1:输入:26输出:"1a"示例 2:输入:-1输出:"ffffffff"...
2022-01-17 17:41:16
165
原创 每日一题Day23——第三大的数
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。示例 1:输入:[3, 2, 1]输出:1解释:第三大的数是 1 。示例 2:输入:[1, 2]输出:2解释:第三大的数不存在, 所以返回最大的数 2 。示例 3:输入:[2, 2, 3, 1]输出:1解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。提示:1 <= nums..
2022-01-14 13:09:53
61
原创 每日一题Day22——至少是其他数字两倍的最大数
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。示例 1:输入:nums = [3,6,1,0]输出:1解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。示例 2:输入:nums = [1,2,3,4]输出:-1解释:4 没有超过 3 的两倍大,所以返回 -1 。示例 3:.
2022-01-13 12:07:33
151
原创 每日一题Day21—— 递增的三元子序列
给你一个整数数组nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k)且满足 i < j < k ,使得nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/increasing-triplet-subsequence著作权归领扣网络所有。商业转载请联系官方授权,非商...
2022-01-12 18:36:04
178
原创 【思特奇杯·云上蓝桥-算法集训营】第1周
1题 跑步训练问题描述 小明要做一个跑步训练,初始时,小明充满体力,体力值计为 10000。 如果小明跑步,每分钟损耗 600 的体力。 如果小明休息,每分钟增加 300 的体力。 体力的损耗和增加都是 均匀变化的。 小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。 如果某个时刻小明的体力到达 0,他就停止锻炼,请问小明在多久后停止锻炼。 为了使答案为整数,请以秒为单位输出答案,答案中只填写数,不填写单位。 答案提交 这是一道结果填空题,你只
2022-01-10 18:19:03
55
原创 每日一题Day19——尽可能使字符串相等
给你两个长度相同的字符串,s 和 t。将 s中的第i个字符变到t中的第 i 个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,则返回 0。示...
2022-01-10 16:45:42
87
原创 每日一题Day18——猜数字游戏
你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls",公牛),有多少位属于数字猜对了但是位置不对(称为 "Cows",奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字secret 和朋友猜测的数字guess ,请你返回对朋友这次猜测的提示。提示的格式为 "xA..
2022-01-07 12:39:54
130
原创 每日一题Day17——字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1
2022-01-06 13:47:33
94
原创 笔记:枚举类与注解
一、枚举类1)枚举类的使用1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。2)如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类1、自定义枚举类:属性:用 private final 修饰对象: private static finalpublic class SeasonTest ...
2022-01-05 21:51:32
70
原创 每日一题Day16——向字符串添加空格
给你一个下标从 0 开始的字符串 s ,以及一个下标从 0 开始的整数数组 spaces 。数组 spaces 描述原字符串中需要添加空格的下标。每个空格都应该插入到给定索引处的字符值 之前 。例如,s = "EnjoyYourCoffee" 且 spaces = [5, 9] ,那么我们需要在 'Y' 和 'C' 之前添加空格,这两个字符分别位于下标 5 和下标 9 。因此,最终得到 "Enjoy Your Coffee" 。请你添加空格,并返回修改后的字符串。来源:力扣(LeetCode.
2022-01-05 16:29:40
124
原创 每日一题Day15—— Excel表列名称
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入:columnNumber = 1输出:"A"示例 1:输入:columnNumber = 28输出:"AB"示例 1:输入:columnNumber = 701输出:"ZY"示例 1:输
2022-01-04 10:32:18
650
原创 每日一题Day14
集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4]输出:[2,3]示例 2:输入:nums = [1,1]输出:[1,2]提示:2 <= nums.lengt.
2022-01-03 13:28:50
51
原创 笔记:常用类
目录一、字符串相关的类:String对象的创建:String特性:String常用方法:Sting与基本数据类型,包装类的转变:String 与 char[]之间的转换:String 与 byte[]之间的转换:字符串相关的类: StringBuffer,StringBuilder:总结:二、JDK8之前的日期时间APISystem类中currentTimeMillis();java.util.Date和子类java.sql.Date1.S...
2022-01-02 03:19:22
293
原创 笔记:多线程
一、基本概念一、程序、进程、线程的理解二、多线程的创建方式一、继承继承于Thread类 * 1. 创建一个继承于Thread类的子类 * 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中 * 3. 创建Thread类的子类的对象 * 4. 通过此对象调用start()举例:遍历100以内的所有的偶数package com.hsy.threadte...
2022-01-02 00:23:43
57
原创 每日一题Day13
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: s = "aba"输出: true示例 2:输入: s = "abca"输出: true解释: 你可以删除c字符。示例 3:输入: s = "abc"输出: false提示:1 <= s.length <= 105s 由小写英文字母组成class Solution { public boolean validPalindrome(String s) { .
2021-12-31 16:07:30
694
原创 每日一题Day12
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 timeS.
2021-12-30 18:58:30
47
原创 每日一题Day11
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target =
2021-12-29 21:03:28
44
原创 每日一题Day10
给定一个只包含三种字符的字符串:(,)和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 (必须有相应的右括号 )。任何右括号 )必须有相应的左括号 (。左括号 ( 必须在对应的右括号之前 )。*可以被视为单个右括号 ),或单个左括号 (,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: "()"输出: True示例 2:输入: "(*)"输出: True示例 3:输入: "(*))"输出: True注...
2021-12-28 17:47:36
57
原创 每日一题Day09
给你一个正整数 n ,生成一个包含 1 到 n的平方 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形二维整型数组 matrix ,并将其打印出来.例:输入n = 3那么我们应该生成的二维数组是:提示:1<= n <= 20;...
2021-12-27 18:13:28
226
原创 每日一题Day08
实现pow(x, n),即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 <x< 100.0-231<= n <=231-1-104 <= xn...
2021-12-10 19:47:32
608
原创 每日一题Day07
给定一个包含[0,n]中n个数的数组 nums,找出[0,n]这个范围内没有出现在数组中的那个数。示例1:输入:nums = [3,0,1]输出:2解释:n= 3,因为有3个数字,所以所有的数字都在范围 [ 0,3]内。2是丢失的数字,因为它没有出现在nums 中。示例2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2个数字,所以所有的数字都在范围 [O,2]内。2是丢失的数字,因为它没有出现在nums 中。示例3:输入:nums = [9,6,4,2,3,5,
2021-12-09 14:27:31
374
原创 每日一题Day6
给你一个整数数组nums,请计算数组的中心下标。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回最靠近左边的那一个。如果数组不存在中心下标,返回-1。示例 1:输入:nums=[1,7,3,6,5,6]输出:3解释:中心下标是3。左侧数之和sum=n...
2021-12-08 18:43:33
65
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人