leetcode
小惊大怪
这个作者很懒,什么都没留下…
展开
-
leetcode26-删除有序数组中的重复项
删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。在这里给出c++的两种方法:第一种双指针算法,通过一快一慢,两个下标值对之前的数组进行整理;方法二是简单的穷举法,因为是有序数组,所以进行与之后的值进行比较,刷新原数组。值得注意的是:输入数组是以「引用」&方式传递的,这意味着在函数里修改输入数组对于调用者是可见的原创 2021-06-06 11:56:02 · 152 阅读 · 0 评论 -
leetcode21-合并有序链表
21-合并有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。运用比较头疼的递归算法,比较两个链表的大小,要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点。如果两个链表有一个为空,递归结束。class Solution21{public: Node* mergeTwoLists(Node* l1, Node* l2) { if (l1 == nullptr) { return l2; }原创 2021-06-06 11:27:39 · 81 阅读 · 0 评论 -
leetcode-20有效括号
有效括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。解题思路:因为成对的括号,存在先进左括号,后出右括号的规则,所以遇到左括号就进栈,遇到右括号就出栈并且校验,直到最后都抵消为空整体代码如下:class Solution20 {public: bool isValid(string s) { int n = s.size(); if (n %原创 2021-06-06 11:15:13 · 142 阅读 · 0 评论 -
leetcode35-搜索插入位置(二分法经典题目)
leetcode35-搜索插入位置二分法经典题目,可以作为学习二分法来学习给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2解法思路:本题让我们查找一个元素target的位置,首先想到的就是二分法查找。只需再加一个条件在没有值的情况下仍能找到对应位置。设变量ans作为target的下标,作为输出,然后int mid = ((right - l原创 2021-06-05 21:35:58 · 98 阅读 · 0 评论 -
leetcode13 罗马转整型 c++
leetcode13 罗马转整型字符 数值I 1V 5X 10L 50C 100D 500M 1000罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但原创 2021-05-25 12:47:49 · 79 阅读 · 0 评论 -
leetcode9 回文数 c++
leetcode9 回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是例输入:-121输出:false解法思路:用数学方法,通过求余得数的方法,将输入的数,进行反转,用反转后的数与原来的数进行比较,返回bool值。(在这里遇到问题,leetcode中不允许y定义为整型,但在vs2013中就可以,如遇到的话可以把int换为double)全部详细代码如原创 2021-05-25 12:30:15 · 261 阅读 · 0 评论 -
leetcode7 整数反转 c++
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。例:输入:-123输出:-321解法思路:通过数学方法,原数对10求余可得到末尾数字,然后除10,直接减少数的位数,将最后一位去掉,进行遍历,对得到数字重新计算来得到反转数字。完整代码如下:class Solution7 {public: int reverse(int x) { int rev原创 2021-05-25 11:59:35 · 149 阅读 · 0 评论 -
leetcode1 完整实现两数之和 c++
leetcode1两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class Solutiontwosum {public:原创 2021-05-25 11:36:34 · 378 阅读 · 0 评论