模拟
花飞雨追
梦想不是浮躁,而是沉淀和积累。
展开
-
Leetcode 884 两句话中不常见单词
题目句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。解题思路 HashMap解决之。代码class Solution { public String[] uncommonFromSentences(String s1, String s2) { List&原创 2022-01-31 00:35:26 · 5817 阅读 · 0 评论 -
Leetcode 2047 句子中的有效单词数
题目句子仅由小写字母(‘a’ 到 ‘z’)、数字(‘0’ 到 ‘9’)、连字符(’-’)、标点符号(’!’、’.’ 和 ‘,’)以及空格(’ ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ’ ’ 分隔。如果一个 token 同时满足下述条件,则认为这个 token 是一个有效单词:仅由小写字母、连字符和/或标点(不含数字)。至多一个 连字符 ‘-’ 。如果存在,连字符两侧应当都存在小写字母(“a-b” 是一个有效单词,但 “-ab” 和原创 2022-01-27 01:48:29 · 5643 阅读 · 0 评论 -
Leetcode 2013 检测正方形
题目给你一个在 X-Y 平面上的点构成的数据流。设计一个满足下述要求的算法:添加 一个在数据流中的新点到某个数据结构中。可以添加 重复 的点,并会视作不同的点进行处理。给你一个查询点,请你从数据结构中选出三个点,使这三个点和查询点一同构成一个 面积为正 的 轴对齐正方形 ,统计 满足该要求的方案数目。轴对齐正方形 是一个正方形,除四条边长度相同外,还满足每条边都与 x-轴 或 y-轴 平行或垂直。实现 DetectSquares 类:DetectSquares() 使用空数据结构初始化对象vo原创 2022-01-26 23:34:10 · 395 阅读 · 0 评论 -
Leetcode 1688 比赛中的配对次数
题目给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次数,直到决出获胜队伍为止。解题思路 模拟。代码class Solution { public原创 2022-01-25 01:05:15 · 5722 阅读 · 0 评论 -
Leetcode 747 至少是其他数字两倍的最大数
题目给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。解题思路 模拟,找到第一大的和第二大的数判断一下即可。代码class Solution { public int dominantIndex(int[] nums) { int max_value = -1, second_value = -1; int len原创 2022-01-13 00:49:54 · 172 阅读 · 0 评论 -
Leetcode 1614 括号的最大嵌套深度
题目如果字符串满足以下条件之一,则可以称之为 有效括号字符串(valid parentheses string,可以简写为 VPS):字符串是一个空字符串 “”,或者是一个不为 “(” 或 “)” 的单字符。字符串可以写为 AB(A 与 B 字符串连接),其中 A 和 B 都是 有效括号字符串 。字符串可以写为 (A),其中 A 是一个 有效括号字符串 。类似地,可以定义任何有效括号字符串 S 的 嵌套深度 depth(S):depth("") = 0depth© = 0,原创 2022-01-07 00:35:18 · 225 阅读 · 1 评论 -
Leetcode 71 简化路径
题目给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,’//’)都被视为单个斜杠 ‘/’ 。 对于此问题,任何其他格式的点(例如,’…’)均被视为文件/目录名称。请注意,返回的 规范路径 必须遵循下述格式:始终以斜杠原创 2022-01-06 12:12:41 · 92 阅读 · 0 评论 -
Leetcode 1576 替换所有的问号
题目给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。解题思路 模拟。对于每个 ? ,只可能有 a b c 三种取值,遍历字符串,判断相邻两个元素即可。代码clas原创 2022-01-05 10:29:49 · 561 阅读 · 0 评论 -
Leetcode 846 一手顺子
题目Alice 手中有一把牌,她想要重新排列这些牌,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。给你一个整数数组 hand 其中 hand[i] 是写在第 i 张牌,和一个整数 groupSize 。如果她可能重新排列这些牌,返回 true ;否则,返回 false解题思路 模拟。将每个牌出现的次数用哈希计数,再从小到大枚举顺子的起始牌,按照 groupSize 的长度依次更新牌数,如果出现牌数不够的情况则返回 false 。 TreeMap原创 2021-12-30 11:51:28 · 290 阅读 · 0 评论 -
Leetcode 1154 一年中的第几天
题目给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。解题思路 模拟即可,也可以用库函数。代码class Solution { public int dayOfYear(String date) { String[] yearMonthDa原创 2021-12-21 09:56:25 · 577 阅读 · 0 评论 -
Leetcode 794 有效的井字游戏
题目给你一个字符串数组 board 表示井字游戏的棋盘。当且仅当在井字游戏过程中,棋盘有可能达到 board 所显示的状态时,才返回 true 。井字游戏的棋盘是一个 3 x 3 数组,由字符 ' ','X' 和 'O' 组成。字符 ' ' 代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(' ')中。玩家 1 总是放字符 'X' ,而玩家 2 总是放字符 'O' 。'X' 和 'O' 只允许放置在空位中,不允许对已放有字符的位置进行填充。当有 3 个相同(且非空)的字符填充任何行原创 2021-12-10 10:24:05 · 84 阅读 · 0 评论 -
Leetcode 748 最短补全词
题目给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返回 words 中的 最短补全词 。补全词 是一个包含 licensePlate 中所有的字母的单词。在所有补全词中,最短的那个就是 最短补全词 。在匹配 licensePlate 中的字母时:忽略 licensePlate 中的 数字和空格 。不区分大小写。如果某个字母在 licensePlate 中出现不止一次,那么该字母在补全词中的出现次数应当一致或者更多。例如:licensePlate原创 2021-12-10 10:16:33 · 1069 阅读 · 0 评论 -
Leetcode 75 颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。原创 2021-11-30 10:02:08 · 321 阅读 · 0 评论 -
Leetcode 400 第N位数字
给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位数字。原创 2021-11-30 09:29:43 · 121 阅读 · 0 评论 -
Leetcode 45 跳跃游戏II
给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。原创 2021-11-28 15:05:54 · 2967 阅读 · 0 评论 -
Leetcode 438 找到字符串中所有字母异位词
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。原创 2021-11-28 14:32:35 · 199 阅读 · 0 评论 -
Leetcode 57 插入区间
给你一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。原创 2021-11-27 11:18:25 · 384 阅读 · 0 评论 -
Leetcode 41 缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。原创 2021-11-24 11:41:50 · 317 阅读 · 0 评论 -
Leetcode 423 从英文中重建数字
给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。原创 2021-11-24 11:13:01 · 108 阅读 · 0 评论 -
Leetcode 73 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?原创 2021-11-23 11:01:19 · 261 阅读 · 0 评论 -
Leetcode 859 亲密字符串
给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。例如,在 “abcd” 中交换下标 0 和下标 2 的元素可以生成 “cbad” 。原创 2021-11-23 09:42:55 · 296 阅读 · 0 评论 -
Leetcode 59 螺旋矩阵II
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。原创 2021-11-17 20:58:26 · 223 阅读 · 0 评论 -
Leetcode 58 最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。原创 2021-11-16 10:55:04 · 247 阅读 · 0 评论 -
Leetcode 48 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。原创 2021-11-15 09:51:57 · 1456 阅读 · 0 评论 -
Leetcode 38 外观数列
给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。原创 2021-11-15 09:27:11 · 81 阅读 · 0 评论 -
Leetcode 26 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。原创 2021-10-31 13:11:42 · 89 阅读 · 0 评论 -
Leetcode 6 Z字变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);原创 2021-10-31 10:11:37 · 118 阅读 · 0 评论 -
Leetcode 29 两数相除
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2原创 2021-10-30 10:51:21 · 96 阅读 · 0 评论 -
Leetcode 13 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常原创 2021-10-28 11:17:31 · 107 阅读 · 0 评论 -
Leetcode 12 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常原创 2021-10-28 10:14:19 · 98 阅读 · 0 评论 -
Leecode 7 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2^{31} 31 , 2^{31} 31 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。原创 2021-10-22 11:20:19 · 77 阅读 · 0 评论 -
Leetcode 66 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。原创 2021-10-21 10:13:59 · 129 阅读 · 0 评论 -
Leetcode 面试题 16.09 最大数值
Leetcode 面试题 16.09 最大数值题目编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。解题思路a>b → a-b>0 → 符号位为0a<b → a-b<0 → 符号位为1有了这个推论,我们只需要把a-b的值的符号拿出来就行了,这里想到了位运算。然后用与运算可以判断符号位是0还是1 。最后可以用乘法得到结果。int与int的计算会炸int(脑补最大-最小),强制转换一下即可(痛失1A代码class Solution原创 2021-09-27 15:59:19 · 183 阅读 · 0 评论 -
Leetcode 1260 二维网格迁移
Leetcode 1260 二维网格迁移解题思路这题把数组拉成一维就能发现,本质是个数组的滚动。傻里傻气的模拟移动过程就输了(确信例如1 2 3 4 5 6 7 8 9移动一次就是9 1 2 3 4 5 6 7 8,移动9次就是1 2 3 4 5 6 7 8 9。移动次数k先对总个数取模,表示实际移动次数。之后就是模拟下标了。代码贴个丑丑的代码(逃class Solution { public List<List<Integer>> shiftGrid(int[原创 2021-09-27 15:21:02 · 105 阅读 · 0 评论 -
POJ2080简单模拟
CalendarTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 13574 Accepted: 4838DescriptionA calendar is a system for measuring time, from hours and minutes原创 2017-05-01 21:46:46 · 696 阅读 · 0 评论 -
POJ1068模拟
ParencodingsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 26476 Accepted: 15500DescriptionLet S = s1 s2...s2n be a well-formed string of parentheses.原创 2017-05-02 21:03:32 · 290 阅读 · 0 评论 -
POJ1350模拟
Cabric Number ProblemTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 11008 Accepted: 3379DescriptionIf we input a number formed by 4 digits and these di原创 2017-05-05 21:22:09 · 231 阅读 · 0 评论 -
POJ1298模拟
The Hardest Problem EverTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 26013 Accepted: 14078DescriptionJulius Caesar lived in a time of danger and intr原创 2017-04-27 19:53:37 · 581 阅读 · 0 评论 -
CSU 1958数字游戏
Description小明今年才上一年级,加减法只会算加一和减一。老师就是喜欢看小明写不出题目的样子,所以给小明出了个难题:给出两个数字x,y,每次可以让数字的某一位加一或者减一(0减1变成9,9加1变成0)。问从x变到y至少要几次操作?小明虽然数学不好但是编程很强呀,他很快就得出了正确答案,现在看你的了~注意:每次变换只能变动除前导零的数位。例如1109变成0109后不能变再成1109或原创 2017-06-19 00:58:26 · 338 阅读 · 0 评论 -
POJ3620DFS
Avoid The LakesTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8344 Accepted: 4380DescriptionFarmer John's farm was flooded in the most recent storm, a原创 2017-06-19 01:38:53 · 351 阅读 · 0 评论