leetcode
阿澈ch
这个作者很懒,什么都没留下…
展开
-
学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。我的c++代码动态规划法class Solution {public:...原创 2020-03-24 18:21:41 · 137 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 70.爬楼梯(动态规划)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶我的c++代码...原创 2020-03-22 13:47:49 · 117 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 100.相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。我的c++代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2020-03-21 18:52:01 · 117 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 88. 合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2...原创 2020-03-19 19:51:54 · 102 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 83.删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3我的c++代码/** * Definition for singly-linked list. * struct ListNode { * in...原创 2020-03-17 19:43:13 · 100 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 69.x的平方根(暴力法、二分查找)
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。我的c++代码暴力法class Solution {public: int ...原创 2020-03-16 20:45:38 · 162 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 67.二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。输入: a = “11”, b = “1”输出: “100”输入: a = “1010”, b = “1011”输出: “10101”我的c++代码class Solution {public: string addBinary(string a, string b) {...原创 2020-03-15 21:32:15 · 111 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。我的c++代码class S...原创 2020-03-14 21:51:05 · 103 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 58. 最后一个单词的长度
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。输入: “Hello World”输出: 5我的c++代码class Solution {public: int lengt...原创 2020-03-13 21:44:50 · 114 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 35.搜索插入位置(暴力法、二分查找)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。输入: [1,3,5,6], 5输出: 2输入: [1,3,5,6], 2输出: 1输入: [1,3,5,6], 7输出: 4输入: [1,3,5,6], 0输出: 0我的c++代码class Solution {...原创 2020-03-12 12:12:28 · 101 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 28. 实现 strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。输入: haystack = “hello”, needle = “ll”输出: 2输入: haystack = “aaaaa”, needle = “bba”输出: -1...原创 2020-03-12 12:03:55 · 120 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 27.移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需...原创 2020-03-11 13:21:05 · 125 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 26. 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地修改输入数组 并在使用** O(1)** 额外空间的条件下完成。给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。给定 nums =...原创 2020-03-10 15:48:46 · 124 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 21.合并两个有序列表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4我的c++程序/** * Definition for singly-linked list. * struct ListNode { * int va...原创 2020-03-09 19:40:17 · 97 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: “()”输出: true输入: “()[]{}”输出: true输入: “(]”输出: false输入: “([)]”输出: false...原创 2020-03-09 16:38:42 · 70 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。我的c++代码class Solution {public:...原创 2020-03-08 15:54:43 · 122 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 7.整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2312^{31}231, 2312^{31}231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。我的c++代码cl...原创 2020-03-08 14:06:01 · 123 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 13.罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数...原创 2020-03-07 21:28:08 · 123 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解...原创 2020-03-07 16:16:40 · 112 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “w...原创 2020-03-05 20:35:02 · 106 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 2. 两数相加
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因...原创 2020-03-04 21:41:25 · 103 阅读 · 0 评论 -
学渣的刷题之旅 leetcode刷题 1.两数之和
c++实现class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> result; for(int i=0;i<nums.size();i++){ for(int...原创 2020-03-04 21:25:55 · 178 阅读 · 0 评论