Leetcode
sandalphon4869
这个作者很懒,什么都没留下…
展开
-
LC8. 字符串转换整数 (atoi):DFA有限状态机
文章目录题DFA题DFAclass Automaton { string state = "start"; unordered_map<string, vector<string>> table = { {"start", {"start", "signed", "in_number", "end"}}, {"signed", {"end", "end", "in_number", "end"}}, {"i原创 2021-01-25 12:35:54 · 175 阅读 · 0 评论 -
LC7.整数反转
文章目录题目解题目解我的解和官方的解用时差不多,主要是想要秀一下string的用法(int和string的互换、string和vector的联系、string的find)。// myclass Solution {public: int reverse(int x) { if (x == 0) return 0; string num_str = to_string(x); std::reverse(num_str.be原创 2021-01-24 18:51:12 · 129 阅读 · 0 评论 -
LC283.移动零
文章目录题目解感想题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解也想到了交换,但是想到的是麻烦的遍历,如果当前是0,那么while找到之后1,交换,找不到结束。class Solution {public: void moveZeroes(vector<int>&原创 2021-01-23 13:59:14 · 185 阅读 · 0 评论 -
LC136. 只出现一次的数字
文章目录原题思路变种原题给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路排序+比较#include<algorithm>class Solution {public: int singleNumber(vector<int&g原创 2021-01-23 12:23:11 · 147 阅读 · 0 评论 -
LC189.旋转数组:涉及vector
文章目录我的解法:插入擦除翻转解法我的解法:插入擦除1234567(k=1)变成7123456,将前6个移到尾部。1234567(k=2)变成6712345,将前5个移到尾部。1234567(k=3)变成5671234,将前4个移到尾部。…1234567(k=10)变成5671234,将前4个移到尾部。前l个 = n-k%nclass Solution {public: void rotate(vector<int>& nums, int k) {原创 2021-01-23 10:59:00 · 257 阅读 · 0 评论 -
两数和查询
文章目录硬解使用Map硬解#include <iostream>#include <vector>using namespace std;class Solution{public: vector<int> twoSum(vector<int> &nums, int target) { vec...原创 2020-05-03 15:49:40 · 209 阅读 · 0 评论 -
【数组、容器】26. 删除排序数组中的重复项
文章目录一、题二、解一、题题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数...原创 2019-07-31 12:31:55 · 164 阅读 · 0 评论 -
【C++】【栈、vector】155.最小栈
文章目录一、题二、解1.粗糙2.优化一、题描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack...原创 2019-07-26 19:26:28 · 263 阅读 · 0 评论 -
【C++】【栈】20. 有效的括号
文章目录一、题二、解一、题题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]...原创 2019-07-27 19:43:32 · 268 阅读 · 0 评论