刷题记录
leetcode刷题记录
fatfatmomo
新时代农民工
后厂村一哥
算法工程师
展开
-
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 · 91 阅读 · 0 评论 -
[数组] 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 方法很简单,注意vector的插入函数和999这种全是9的边界条件: class Solution { public: vector<int> plusOne(vector<i...原创 2019-07-17 19:10:23 · 93 阅读 · 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 · 142 阅读 · 0 评论 -
[*new指针] 2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 class Solution { public: ListNode* addTwoNumbers(ListNod...原创 2019-07-18 11:19:31 · 242 阅读 · 0 评论 -
[map/哈希/异或] 136/137/260 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 方法一:直接异或全部。 class Solution { public: int singleNumber(vector<int>& nums) { int sum...原创 2019-07-18 15:57:14 · 198 阅读 · 0 评论 -
[map&字典] 17. 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 class Solution { public: vector<string> letterCombinations(string digits) { vector<string> s; st...原创 2019-07-23 14:29:45 · 271 阅读 · 0 评论