![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
Thorold's Deer
It's easy to say , it's much more difficult to do.
展开
-
LeetCode | 292 Nim 游戏
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1:输入:n = 4输出:false 解释:以下是可能的结果:1. 移除1颗石头。你的朋友移走了3块石头,包括最后一块。你的朋友赢了。2. 移除2个石子。转载 2022-02-21 15:51:51 · 78 阅读 · 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 。通常转载 2022-02-21 15:47:29 · 207 阅读 · 0 评论 -
LeetCode | 344 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,...原创 2019-08-06 14:57:16 · 73 阅读 · 0 评论 -
LeetCode | 28 实现 strStr()
class Solution {public: int strStr(string haystack, string needle) { if (needle.empty()) { return 0; } if (haystack[0] == needle[0] && haystack.size() == 1 && ...原创 2019-08-09 16:00:21 · 99 阅读 · 0 评论 -
LeetCode | 1108 IP地址无效化
利用指针寻找 ‘.’ ,遇到点则加入 “[.]” ,注意:string 型可以直接用 + 来添加字符。class Solution {public: string defangIPaddr(string address) { string a; int k = 0; for (int i = 0; i < address.size(); i++) { if (...原创 2019-08-08 15:54:59 · 86 阅读 · 0 评论 -
LeetCode | 283 移动零
利用双指针,一个指针指向开头,放非零元素,一个指针指向原数组元素,进行遍历。class Solution {public: void moveZeroes(vector<int>& nums) { int t = 0; //非零元素指针 for (int i = 0; i < nums.size(); i++) { if (nums[i] ...原创 2019-08-07 09:43:08 · 63 阅读 · 0 评论 -
LeetCode | 13 罗马数字转整数
别人的思路借鉴: 用字典存储各个罗马数字代表的阿拉伯数字 按顺序读取罗马数字,当前数字小于下一个数字,则是下一个数字减去当前数字,否则直接相加 比如IV就是*-1+5=4*,而IIV这种情况是不存在的,对于其他量级的数字也是同理。 实际处理的时候最后一个数字无法和它下一个数字比较,因为不存在下一个数字。 但是最后一个数字永远是加的而不是减的,所以就单独拎出来...原创 2019-08-07 10:51:57 · 75 阅读 · 0 评论 -
LeetCode | 26 删除排序数组中的重复项
采用双指针方法,对空数组和只有一个元素的数组进行讨论。class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.empty()) { return 0; } if (nums.size() == 1) { return 1; } int k...原创 2019-08-08 11:15:43 · 63 阅读 · 0 评论 -
LeetCode | 27 移除元素
采用双指针方法,思路类似之前写过的题目,算是把双指针的思路加强巩固。class Solution {public: int removeElement(vector<int>& nums, int val) { int k = 0; for (int i = 0; i < nums.size(); i++) { if (nums[i] != v...原创 2019-08-08 10:16:41 · 76 阅读 · 0 评论 -
LeetCode | 171 Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3…Z -> 26AA -> 27AB -> 28…示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28示例 3:输入: “ZY”输出: 701思路:将十进制转化为二十六进制即可class Solution ...原创 2019-08-05 16:34:03 · 115 阅读 · 0 评论 -
LeetCode | 1 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solut...原创 2019-07-08 00:15:59 · 81 阅读 · 0 评论 -
LeetCode | 9 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将...原创 2019-07-12 11:19:03 · 140 阅读 · 1 评论 -
LeetCode | 35 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0#include...原创 2019-07-12 14:19:18 · 80 阅读 · 0 评论 -
LeetCode | 1038 从二叉搜索树到更大和数
给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,...原创 2019-07-24 08:57:28 · 98 阅读 · 0 评论 -
LeetCode | 709 转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”class Solution { public: string toLow...原创 2019-07-24 09:33:19 · 73 阅读 · 0 评论 -
LeetCode | 771 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: ...原创 2019-07-24 10:50:35 · 79 阅读 · 0 评论 -
LeetCode | 509 斐波那契数
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 ...原创 2019-07-24 21:06:49 · 92 阅读 · 0 评论 -
LeetCode | 7 整数翻转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solu...原创 2019-07-07 23:52:25 · 68 阅读 · 0 评论