自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 力扣 1184. 公交站间的距离 Java

环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。返回乘客从出发点 start 到目的地 destination 之间的最短距离。示例 1:输入:distance = [1,2,3,4], start = 0, destination = 1输出:1解释:公交站 0 和 1 之间的距离是 1 或 9

2020-11-30 23:42:10 269

原创 力扣 1446. 连续字符 Java

给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。请你返回字符串的能量。示例 1:输入:s = "leetcode"输出:2解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。示例 2:输入:s = "abbcccddddeeeeedcba"输出:5解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。示例 3:输入:s = "triplepillooooow"输出:5示例 4:输入:s = "hooraaaaaa

2020-11-30 22:37:01 182

原创 力扣 268. 丢失的数字 Java

给定一个包含 [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 个数字,所以所有的数字都在范围 [0,2] 内。

2020-11-30 22:28:28 273 1

原创 力扣 937. 重新排列日志文件 Java

你有一个日志数组 logs。每条日志都是以空格分隔的字串。对于每条日志,其第一个字为字母与数字混合的 标识符 ,除标识符之外的所有字为这一条日志的 内容 。除标识符之外,所有字均由小写字母组成的,称为 字母日志除标识符之外,所有字均由数字组成的,称为 数字日志题目所用数据保证每个日志在其标识符后面至少有一个字。请按下述规则将日志重新排序:所有 字母日志 都排在 数字日志 之前。字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序;数字日志 应该按原来的顺序排列

2020-11-30 22:20:14 209

原创 力扣 1071. 字符串的最大公因子 Java

对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = "ABCABC", str2 = "ABC"输出:"ABC"示例 2:输入:str1 = "ABABAB", str2 = "ABAB"输出:"AB"示例 3:输入:str1 = "LEET", str2 = "CODE"输出:""提示:1 &lt

2020-11-30 21:37:41 123

原创 力扣 976. 三角形的最大周长 Java

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 100001 <= A[i] <= 10^6Javaclass Solution { p

2020-11-30 21:23:26 182

原创 PAT甲级1092 To Buy or Not to Buy (20分) C++ / Java

Eva would like to make a string of beads with her favorite colors so she went to a small shop to buy some beads. There were many colorful strings of beads. However the owner of the shop would only sell the strings in whole pieces. Hence Eva must check whet

2020-11-29 16:34:03 175

原创 力扣 1507. 转变日期格式 Java

给你一个字符串 date ,它的格式为 Day Month Year ,其中:Day 是集合 {“1st”, “2nd”, “3rd”, “4th”, …, “30th”, “31st”} 中的一个元素。Month 是集合 {“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”} 中的一个元素。Year 的范围在 ​[1900, 2100] 之间。请你将字符串转变为 YYYY-MM-DD

2020-11-28 20:53:32 268

原创 力扣 690. 员工的重要性 Java

给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中。现在输入一个公司的所有员工信息,以及单个员工id,返回这个员工和他所有下属的重要度之和。示例 1:输入:

2020-11-28 20:35:54 262

原创 力扣 748. 最短补全词 Java

给定一个字符串牌照 licensePlate 和一个字符串数组 words ,请你找出并返回 words 中的 最短补全词 。如果单词列表(words)中的一个单词包含牌照(licensePlate)中所有的字母,那么我们称之为 补全词 。在所有完整词中,最短的单词我们称之为 最短补全词 。单词在匹配牌照中的字母时要:忽略牌照中的数字和空格。不区分大小写,比如牌照中的 “P” 依然可以匹配单词中的 “p” 字母。如果某个字母在牌照中出现不止一次,那么该字母在补全词中的出现次数应当一致或者更多。例

2020-11-28 19:47:04 195

原创 力扣 1009. 十进制整数的反码 Java(位运算 异或)

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。给你一个十进制数 N,请你返回其二进制表示的反码所对应的十进制整数。示例 1:输入:5输出:2解释:5 的二进制表示为 "101",其二进制反码为 "010",也就是十进制中的 2 。示例 2

2020-11-28 13:04:27 202

原创 力扣 985. 查询后的偶数和 Java

给出一个整数数组 A 和一个查询数组 queries。对于第 i 次查询,有 val = queries[i][0], index = queries[i][1],我们会把 val 加到 A[index] 上。然后,第 i 次查询的答案是 A 中偶数值的和。(此处给定的 index = queries[i][1] 是从 0 开始的索引,每次查询都会永久修改数组 A。)返回所有查询的答案。你的答案应当以数组 answer 给出,answer[i] 为第 i 次查询的答案。示例:输入:A = [1,2

2020-11-27 12:20:19 88

原创 力扣 1556. 千位分隔数 Java

给你一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。示例 1:输入:n = 987输出:"987"示例 2:输入:n = 1234输出:"1.234"示例 3:输入:n = 123456789输出:"123.456.789"示例 4:输入:n = 0输出:"0"提示:0 <= n < 2^31Javaclass Solution { public String thousandSeparator(in

2020-11-27 09:22:54 163

原创 力扣 100. 相同的树 Java (二叉树深度优先遍历DFS)

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2 2

2020-11-27 08:51:53 205

原创 力扣 788. 旋转数字 Java

我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方(在这种情况下,它们以不同的方向旋转,换句话说,2 和 5 互为镜像);6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数 N, 计算从 1 到 N 中有多少个数 X 是好数?示例:

2020-11-21 23:24:40 430

原创 力扣 824. 山羊拉丁文 Java

给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。例如,单词"apple"变为"applema"。如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"。例如,单词"goat"变为"oatgma"。根据单词在句子中的索引,在单词最后添加与索引相同数量

2020-11-14 23:11:35 156

原创 力扣 64. 最小路径和 C++/ Java Dp(动态规划)

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12提示:m == grid.lengthn == grid[i].length1 <= m, n <= 200

2020-11-12 22:50:21 515

原创 力扣 504. 七进制数 C++

给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: "202"示例 2:输入: -7输出: "-10"注意: 输入范围是 [-1e7, 1e7] 。C++class Solution {public: string convertToBase7(int num) { if(!num) return to_string(0); int tmp = abs(num); string ans = "";

2020-11-12 22:26:07 143

原创 PAT甲级 1009 Product of Polynomials (25分) C++

This time, you are supposed to find A×B where A and B are two polynomials.Input Specification:Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K N​1a​N1N2aN2​​ … NKaNK​​​​wher

2020-11-12 21:59:34 157

原创 力扣 1408. 数组中的字符串匹配 C++(lambda表达式)

给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[j] 的一个子字符串。示例 1:输入:words = ["mass","as","hero","superhero"]输出:["as","hero"]解释:"as" 是 "mass" 的子字符串,"hero" 是 "supe

2020-11-08 14:40:27 364

原创 力扣 448. 找到所有数组中消失的数字 C++

给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]C++//Hash 时间O(NlogN)class Solution {public: vector<int>

2020-11-07 18:10:06 397

原创 力扣 1185. 一周中的第几天 C++(基姆拉尔森数学公式,计算指定某一天是星期几)

给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。示例 1:输入:day = 31, month = 8, year = 2019输出:"Saturday"示例 2:输入:day = 18, month = 7, year

2020-11-07 17:48:09 360

原创 力扣 1170. 比较字符串最小字母出现频次 C++

我们来定义一个函数 f(s),其中传入参数 s 是一个非空字符串;该函数的功能是统计 s 中(按字典序比较)最小字母的出现频次。例如,若 s = “dcce”,那么 f(s) = 2,因为最小的字母是 “c”,它出现了 2 次。现在,给你两个字符串数组待查表 queries 和词汇表 words,请你返回一个整数数组 answer 作为答案,其中每个 answer[i] 是满足 f(queries[i]) < f(W) 的词的数目,W 是词汇表 words 中的词。示例 1:输入:queri

2020-11-04 13:15:12 220

原创 693. 交替位二进制数 C++

给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:```cpp输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.示例 4:输入:n = 10输出:true解释:10 的二进制表示是:1010.示例 5:输入:n = 3输

2020-11-04 13:15:02 402

原创 力扣 1260. 二维网格迁移 queue

给你一个 m 行 n 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。每次「迁移」操作将会引发下述活动:位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。位于 grid[i][n - 1] 的元素将会移动到 grid[i + 1][0]。位于 grid[m - 1][n - 1] 的元素将会移动到 grid[0][0]。请你返回 k 次迁移操作后最终得到的 二维网格。示例 1:输入:grid = [[1,2,3],[4,5,6],[7,8,9

2020-11-04 13:14:50 186

原创 PAT甲级 1008 Elevator (20分) C++

1008 Elevator (20分)The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one flo

2020-11-03 22:56:29 129

原创 PAT甲级 1007 Maximum Subsequence Sum (25分) C++

1007 Maximum Subsequence Sum (25分)Given a sequence of K integers { N1​ , N2, …, N​K}. A continuous subsequence is defined to be { Ni, Ni+1​​ , …, Nj} where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its ele

2020-11-03 22:19:26 89

原创 PAT甲级 1006 Sign In and Sign Out (25分) C++

At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing in’s and out’s, you are supposed to find the ones who have unlocked and loc

2020-11-03 21:49:32 68

原创 PAT甲级 1005 Spell It Right (20分) C++ (模拟)

Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.Input Specification:Each input file contains one test case. Each case occupies one line which contains an N (≤10​100​​

2020-11-03 21:29:31 87

原创 CCF201709-1 打酱油(简单模拟)

问题描述  小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。输入格式  输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。输出格式  输出一个整数,表示小明最多可以得到多少瓶酱油。样例输入40样例输出5样例说明  把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。样例输入80样例输出11样例说明  把80元分成30元和50元,分

2020-11-03 21:15:39 81

原创 PAT甲级 1004 Counting Leaves (30分)

1004 Counting Leaves (30分)A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file contains one test case. Each case starts with a line containing 0<N&

2020-11-03 00:04:10 92

原创 力扣 LCP 07. 传递信息

小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。每轮信息必须需要传递给另一个人,且信息可重复经过同一个人给定总玩家数 n,以及按 [玩家编号,对应可传递玩家编号] 关系组成的二维数组 relation。返回信息从小 A (编号 0 ) 经过 k 轮传递到编号为 n-1

2020-11-02 10:19:08 339

原创 力扣 868. 二进制间距 C++ bitset

给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。示例 1:输入:n = 22输出:2解释:22 的二进制是 "10110" 。在 22 的二进制表示中,有三个 1,组成两对相邻的 1 。第一对相邻的 1 中,两个 1 之间的距离为

2020-11-01 14:32:22 278

原创 力扣 1046. 最后一块石头的重量 C++

有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1,所以数组转换为

2020-11-01 01:12:29 732

原创 力扣 812. 最大三角形面积 C++

给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意:3 <= points.length <= 50.不存在重复的点。 -50 <= points[i][j] <= 50.结果误差值在 10^-6 以内都认为是正确答案。C++class Solution {

2020-11-01 00:02:27 374

原创 力扣 1078. Bigram 分词 C++

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。示例 1:输入:text = "alice is a good girl she is a good student", first = "a", second = "good"输出:["girl","

2020-11-01 00:02:22 112

原创 力扣 242. 有效的字母异位词 C++ / Python

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?C++class Solution {public: bool isAnagram(string s,

2020-11-01 00:02:16 152

原创 力扣 119. 杨辉三角 II C++ (DP)

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?C++//DP+原地算法: 空间复杂度O(k)class Solution {public: vector<int> getRow(int rowIndex) { vector<int> dp(rowIndex + 1, 1);

2020-11-01 00:02:10 151

原创 力扣 190. 颠倒二进制位 C++ 位运算

颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。示例 2:输入:11111111111111111

2020-11-01 00:02:03 218

原创 力扣 696. 计数二进制子串 C++

给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。示例 2 :输入: "10101

2020-11-01 00:01:56 199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除