![](https://img-blog.csdnimg.cn/20201212185927796.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
2.LeetCode-C++/Rust知识笔记
C++、GO、Python、Rust实现leetcode算法
图解AI
致力于:机器学习、深度学习、数据分析、算法、架构、C/C++、Rust、HTML5/webApp、Go、Python、Lua...
展开
-
「LeetCode笔记」100. 是否为相同的树-C++与Rust实现
* Input: 1 1 * / \ / \ * 2 3 2 3 * * [1,2,3], [1,2,3] * * Output: true * * * Example 2: * * * Input: 1 1 * / \ * 2 2 * * [1.原创 2021-01-18 15:16:16 · 243 阅读 · 0 评论 -
「LeetCode笔记」88. 合并两个有序数组-C++与Rust实现
给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小等于m + n)来保存 nums2 中的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1], ...原创 2021-01-12 19:28:15 · 447 阅读 · 0 评论 -
「LeetCode笔记」83. 删除排序链表中的重复元素-C++与Rust实现
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3C++实现class Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode * cur = head; while (cur && ...原创 2021-01-11 16:15:57 · 389 阅读 · 0 评论 -
「LeetCode笔记」70. 爬楼梯-C++与Rust实现
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶C++ 实现class Solution {public...原创 2021-01-08 14:53:08 · 665 阅读 · 0 评论 -
「LeetCode笔记」69.x 的平方根-C++与Rust实现
实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842...,由于返回类型是整数,小数部分将被舍去C++ 实现class Solution {public: int mySqrt(int x) { long a=1; whil...原创 2021-01-08 09:54:03 · 492 阅读 · 0 评论 -
「LeetCode笔记」67.二进制求和-C++与Rust实现
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。C++实现class Soluti...原创 2021-01-07 14:20:56 · 365 阅读 · 0 评论 -
「LeetCode笔记」8.字符串转换整数 (atoi)-C++与Rust实现
首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数...原创 2021-01-06 14:45:54 · 377 阅读 · 0 评论 -
「LeetCode笔记」58. 最后一个单词的长度-C++与Rust实现
给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-word著作权归领扣网络所有。商业转载请联系官...原创 2021-01-06 14:43:16 · 232 阅读 · 0 评论 -
「LeetCode笔记」66.加一-C++与Rust实现
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]C++实现...原创 2021-01-06 14:40:58 · 257 阅读 · 0 评论 -
「LeetCode笔记」Z字形变换-C++与Rust实现
题目-Z字形变换E T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "LEETCODEISHIRING", numRows = 3输出: "LCIRETOESIIGEDHN"示例 2:输入: s = "LEETCODEISHIRIN原创 2020-12-17 08:45:53 · 384 阅读 · 0 评论 -
LeetCode-2-两数相加(Rust、C++、Py3、Go)实现
1、题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)1、C++实现原创 2020-11-11 14:50:46 · 559 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之4-寻找两个有序数组的中位数
题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位...原创 2019-04-08 16:57:42 · 3235 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之3-无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是...原创 2019-04-04 10:34:27 · 3880 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之27-移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中...原创 2019-03-23 12:14:03 · 4571 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之09-回文数
题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2019-03-03 22:58:46 · 5123 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]算法与数据结构汇总
用四种语言(go,javascript,python,rust)实现LeetCode题目,顺便对数据结构,算法进行汇总和总结。原创 2019-02-23 21:33:27 · 4724 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之20-有效括号匹配
题目给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: &amp;quot;()&amp;quot;输出: true示例 2:输入: &amp;quot;()[]{}&amp;quot;输出: true示例 3:输入: &原创 2019-03-14 10:44:01 · 4997 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之14-最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 &amp;amp;quot;&amp;amp;quot;。示例 1:输入: [&amp;amp;quot;flower&amp;amp;quot;,&amp;amp;quot;flow&amp;amp;quot;,&amp;amp;quot;flight&amp;amp;quot;]原创 2019-03-06 21:38:33 · 4723 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之35-搜索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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...原创 2019-03-25 11:11:49 · 4594 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之38-报数
题目:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , ...原创 2019-03-25 16:45:06 · 4564 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之21-合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路单链表相关知识,递归实现Python实现class Solution: def mergeTwoLists(self, l1: L...原创 2019-03-22 12:39:32 · 4927 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之01-两数之和
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路...原创 2019-03-13 20:13:14 · 5014 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之53-最大子序和
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路1.定义两个变量sum(递推和),max_sum(保存连续值的最大值)2.如果sum<0 则sum等于重置为当前的元素 否则元素累...原创 2019-03-25 21:11:33 · 4438 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之26.-删除排序数组中的重复项
题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。思路...原创 2019-03-23 10:46:39 · 4478 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之13-罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 ...原创 2019-03-05 20:30:08 · 4862 阅读 · 3 评论