
刷题
fatfatmomo
新时代农民工
后厂村一哥
算法工程师
展开
-
[*map&哈希] 3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。方法根据官方题解:class Solution {public: int lengthOfLongestSubstring(string s) { int n = s.length(), ans = 0; int index[128] = {}; // current...原创 2019-07-23 16:41:35 · 175 阅读 · 0 评论 -
[递归&字符串] 22. 括号生成
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。思路:用递归的方法生成所有可能的括号,每生成一个添加到一个vector中class Solution {public: vector<string> res; vector<string> generateParenthesis(int n) { ...原创 2019-07-23 15:14:54 · 162 阅读 · 0 评论 -
28. 实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。简单粗暴解法,时间复杂度m*n,另有KMP等解法可以看一下:class Solution {public: int strStr(string haystack, st...原创 2019-07-17 18:41:21 · 121 阅读 · 0 评论 -
[数组] 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。方法很简单,注意vector的插入函数和999这种全是9的边界条件:class Solution {public: vector<int> plusOne(vector<i...原创 2019-07-17 19:10:23 · 127 阅读 · 0 评论 -
[递归] 101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。class Solution {public: bool isSame(TreeNode* root1,TreeNode* root2) { if(root1==nullptr&&root2==nullptr) { ...原创 2019-07-17 23:22:43 · 171 阅读 · 0 评论 -
[*new指针] 2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。class Solution {public: ListNode* addTwoNumbers(ListNod...原创 2019-07-18 11:19:31 · 284 阅读 · 0 评论 -
[map/哈希/异或] 136/137/260 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?方法一:直接异或全部。class Solution {public: int singleNumber(vector<int>& nums) { int sum...原创 2019-07-18 15:57:14 · 236 阅读 · 0 评论 -
[map&字典] 17. 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。class Solution {public: vector<string> letterCombinations(string digits) { vector<string> s; st...原创 2019-07-23 14:29:45 · 304 阅读 · 0 评论 -
[动态规划] 5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。思路:用动态规划的方法,参考题解class Solution {public: string longestPalindrome(string s) { int len=s.size(); if(len==0||len==1) ...原创 2019-07-23 17:11:13 · 177 阅读 · 0 评论 -
12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...原创 2019-07-23 15:34:54 · 155 阅读 · 0 评论