Leetcode笔记
菜菜女孩要加油哦
这个作者很懒,什么都没留下…
展开
-
LeetCode61(力扣61)旋转链表 C++详细
61.旋转链表题目描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0-&g原创 2021-01-18 18:58:35 · 487 阅读 · 0 评论 -
LeetCode136(力扣136):只出现一次的数字 (C++)
136.只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4我的题解(错误错误错误)class Solution {public: int singleNumber(vector<int>& nums) { so原创 2020-12-16 01:42:33 · 325 阅读 · 0 评论 -
LeetCode541(力扣541):反转字符串Ⅱ(C++)
541.反转字符串Ⅱ给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"提示:该字符串只包含小写英文字母。给定字符串的长度和 k 在 [1, 10000] 范围内。我的题解class Solution {publi原创 2020-12-15 13:52:54 · 296 阅读 · 0 评论 -
LeetCode334(力扣334):反转字符串(C++)
344 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H原创 2020-12-15 13:23:37 · 178 阅读 · 0 评论 -
LeetCode101(力扣101):对称二叉树 C++
101.对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3进阶:你可以运用递归和迭代两种方法解决这个问题吗?我提交的代码class Solution {public: bool isDCtre原创 2020-12-12 15:41:31 · 344 阅读 · 0 评论 -
LeetCode485(力扣485)最大连续1的个数 C++ 使用C++11for
485 最大连续1的个数给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。我提交的代码class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { int原创 2020-12-10 19:16:37 · 258 阅读 · 1 评论 -
LeetCode100(力扣100) :相同的树 C++ 多种思路
100.相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2原创 2020-12-09 23:19:59 · 379 阅读 · 0 评论 -
LeetCode1137(力扣1137) :泰波那契数列 C++ 多种思路与详细解析
1137. 第 N 个泰波那契数泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入:n = 25输出:1389537提示:0 <= n <= 37答案保证是一个 32 位原创 2020-12-08 02:03:18 · 463 阅读 · 0 评论 -
LeetCode509(力扣509) :斐波那契数列 C++ 多种思路与详细解析
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.示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1 + 1原创 2020-12-08 01:41:02 · 646 阅读 · 0 评论 -
剑指offer 03:数组中重复的数字 C++(含测试代码)
剑指offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000我的提交代码class Solution {public: int findRepeatNumber(v原创 2020-12-05 11:44:56 · 153 阅读 · 0 评论 -
LeetCode88(力扣88):合并两个有序数组 C++(含有测试代码)多种思路与解法想详细
合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]提示:-10^原创 2020-12-05 02:50:20 · 526 阅读 · 0 评论 -
LEETCODE35(力扣35)题:搜索插入位置(二分法)
二分查找T35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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我的提交代码class Solution {public: int sear原创 2020-12-03 22:27:31 · 483 阅读 · 0 评论 -
LeetCode283(力扣283):移动零 C语言(含测试代码)多种思路与详细解法
T283.移动零这里是引用难度:简单给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]说明: 1. 必须在原数组上操作,不能拷贝额外的数组。 2. 尽量减少操作次数。我的提交代码void moveZeroes(int* nums, int numsSize){ int temp; for (int i = 0; i < numsSize -原创 2020-11-19 16:54:05 · 1322 阅读 · 0 评论