??这道题耗时40ms,思路是联想到快慢指针,vector有几个元素,我也有几个头指针,若A的头指针最小,就放入结果指针head的next中,则A就比别的指针快一步,移到下一位next。问题就是判断如何最小,可以自己写,也可以使用priority_queue这样有序的数据结构。感谢博客最下面的链接,我也学到了如何自定义比较器。代码如下: struct cmp {bool operator()(ListNode *&a, ListNode *&b) const {return a->val > b->val;} }; class Solu...
Task:思路与代码: 有了递归的思想之后这样的题目看起来还是蛮简单的,就是自己调用自己,给定一个节点, (1)如果节点为空,那就直接返回0; (2)否则(这个节点不是空的),那就用max函数找这个节点的最大深度(左孩子的深度和右孩子的深度中取最大的) (3)然后max里面又调用了函数本身,这就是递归,意思就是对于刚刚那个节点的左孩子和右孩子也是一样的,比如左孩子,那我们又以左孩子为当前节点,重复上面(1)和(2)的过...
Come from : [https://leetcode-cn.com/problems/jump-game/] 55. Jump Game1.Question2.Answer3.大神的算法4.我的收获 1.Question Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index. Example 1: Input: [2,3,1,1,4] Output: true...
解题思路: 使用递归的方法,递归比较左右子树深度,返回较大的值 + 1。/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:int maxDepth(TreeNode* root) {if(!root) return 0;else return max(maxDepth(root->left), maxDepth(root->right)) + 1;} };
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/10940636.html 唉!最近忙着面试找实习,然后都是面试的很多是leetcode的算法题,所以自己就刷了一遍,并且做些笔记,以后再来复习好了,悲催的大学生。。。。。 一、从(排序!)数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组...
给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。 示例 1: 输入:s = "barfoothefoobarman",words = ["foo","bar"] 输出:[0,9] 解释: 从索引 0 和 9 开始的子串分别是 "barfoor" 和 "foobar" 。 输出的顺序不重要, [9,0] 也是有效答案。示例 2: 输入:s = "...
19.Remove Nth Node From End of List [难度:中等] 【题目】 Given a linked list, remove the n-th node from the end of list and return its head. Example:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->3->5.Note: Given n will always be valid. Follow up: Could you do this in one pass? 【解题C++】 (题外话:刚还想说用不惯LeetCode,感...
随笔 - 0? 文章 - 0? 评论 - 0 C++初学之LeetCode刷题基础2019/5/13 个人说明:这是我第一次写博客文章,主要是试写,写的不好请谅解。 初学C++ 下面是关于函数部分的学习内联函数 默认参数列表 缺省参数列表 哑元函数 内联函数 函数前面加上inline 关键字 1.内联函数调用原理 编译过程的最终产品是可执行程序--由一组机器语言指令组成。运行程序时,操作系统将这些指令载入计算机内存中,因此每条指令都有特定的内存地址。计算机...
题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,请根据这个假设,如果反转后整数溢出那么就返回 0。 C++代码如下: class Solution { public:int reverse(int x) {int rev = 0;while (x != 0){int pop = x % 10;x = x / 10;if (rev > INT_MAX / 10 |...
题意:移除元素,移除数组nums中和val相同的元素,返回元素个数。 题解:单独判断nums长度为0时的情况。然后构造for循环,将与val一样的剔除,保留不一样的。 代码:class Solution { public:int removeElement(vector<int>& nums, int val) {int j=0;if(nums.size()==0) return 0;for(int i=0;i<nums.size();i++){if(nums[i]==val) continue;nums[j++]=nums[i];}return j;} };
Container With Most Water Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water. Note: You may not slant the container and n is at least 2.The above vert...
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1:输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", wordDict = ["apple", "pen"] 输出: true 解释: 返...
最大间距 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2: 输入: [10] 输出: 0 解释: 数组元素个数小于 2,因此返回 0。说明: 你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。 请尝试在线性时间复杂度和空间复杂度的...
LeetCode链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/submissions/ 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1:输入: [3,2,1,5,6,4] 和 k = 2 输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 方法一:直接用sort解决 需注意,当排序从大到...
[LeetCode] 500. Keyboard Row (C++) Easy Share Given a List of words, return the words that can be typed using letters of alphabet on only one row’s of American keyboard like the image below.Example: Input: [“Hello”, “Alaska”, “Dad”, “Peace”] Output: [“Alaska”, “Dad”] Note: You may use one character in the keyboard more than once. You may assume the input string will only contain lette...