LEETCODE
LEETCODE
勇气~
华南理工研究生
正在刷刷刷题ing
展开
-
LeetCode167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) {int index1...原创 2018-09-24 16:41:50 · 148 阅读 · 0 评论 -
LeetCode111 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2018-09-07 00:43:17 · 866 阅读 · 0 评论 -
LeetCode110 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig...原创 2018-09-07 00:42:26 · 2124 阅读 · 0 评论 -
LeetCode108 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...原创 2018-09-07 00:41:36 · 723 阅读 · 0 评论 -
LeetCode107 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15,7],/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...原创 2018-09-07 00:40:23 · 2816 阅读 · 0 评论 -
LeetCode104 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2018-09-07 00:39:37 · 2205 阅读 · 0 评论 -
LeetCode101 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int ...原创 2018-09-07 00:38:49 · 1270 阅读 · 0 评论 -
LeetCode 100 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tree...原创 2018-09-07 00:37:51 · 1490 阅读 · 0 评论 -
LeetCode88 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。class Solution {public: void merge(ve...原创 2018-09-07 00:15:07 · 2570 阅读 · 1 评论 -
LeetCode112 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig...原创 2018-09-07 00:44:03 · 4906 阅读 · 0 评论 -
杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> nums(2); ...原创 2018-09-24 16:33:20 · 104 阅读 · 0 评论 -
LeetCode160. 相交链表
编写一个程序,找到两个单链表相交的起始节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {p...原创 2018-09-24 16:41:08 · 271 阅读 · 0 评论 -
LeetCode155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。class MinStack {public: /** initialize your data structure here. */ MinS...原创 2018-09-24 16:40:19 · 161 阅读 · 0 评论 -
LeetCode141. 环形链表
给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cla...原创 2018-09-24 16:39:30 · 118 阅读 · 0 评论 -
LeetCode136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?class Solution {public: // int singleNumber(vector<int>& nums) { // set<int> set1;...原创 2018-09-24 16:38:45 · 105 阅读 · 0 评论 -
LeetCode125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。class Solution {public: bool isPalindrome(string s) { for(string::iterator iter1 = s.begin(),iter2 = s.end()-1; iter2-ite...原创 2018-09-24 16:37:56 · 117 阅读 · 0 评论 -
LeetCode122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:class Solution {public: int maxProfit(vector<int>& prices) { ...原创 2018-09-24 16:37:07 · 121 阅读 · 0 评论 -
LeetCode121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。class Solution {public: // int maxProfit(vector<int>& prices) { // int max1 = 0...原创 2018-09-24 16:36:13 · 101 阅读 · 0 评论 -
LeetCode119 杨辉三角
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。class Solution {public: vector<int> getRow(int rowIndex) { vector<vector<int> > res; if (rowIndex+1 &...原创 2018-09-24 16:34:58 · 150 阅读 · 0 评论 -
LeetCode83 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class ...原创 2018-09-07 00:12:00 · 1092 阅读 · 0 评论 -
LeetCode83 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class ...原创 2019-08-04 21:50:55 · 262 阅读 · 0 评论 -
LeetCode21 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* me...原创 2018-09-04 18:27:36 · 947 阅读 · 0 评论 -
LeetCode20 有效括号
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。class Solution {public: bool isValid(string s) { stack<char> resu...原创 2018-09-04 18:26:45 · 100 阅读 · 0 评论 -
LeetCode14 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs.size() == 0) return ""; string str; int lengthmin = strs[0].length...原创 2018-09-04 18:25:37 · 651 阅读 · 0 评论 -
LeetCode13 罗马数
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个...原创 2018-09-04 18:24:44 · 78 阅读 · 0 评论 -
LeetCode9 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
class Solution {public: bool isPalindrome(int x) { int rev = 0,y = x; if(x<0) { return false; } else { while(y) ...原创 2018-09-04 18:23:24 · 802 阅读 · 0 评论 -
LeetCode7 给定一个 32 位有符号整数,将整数中的数字进行反转。
class Solution {public: int reverse(int x) {long long x1 = abs(x); long long y=0, n=0; std::vector<int> i; while(x1/(long long)(pow(double(10),int(n)))) { ...原创 2018-09-04 18:22:26 · 267 阅读 · 0 评论 -
LeetCode3 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。class Solution {public: int lengthOfLongestSubstring(string s) { int m[256] = {0}, res = 0, left = 0; for (int i = 0; i < s.size(); ++i) { ...原创 2018-09-04 18:21:25 · 83 阅读 · 0 评论 -
LeetCode2 两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ...原创 2018-09-04 18:19:41 · 86 阅读 · 0 评论 -
LeetCode26 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。class Solution {public: int removeDuplicates(vector<int>& nums) { std::vector...原创 2018-09-04 18:28:26 · 3122 阅读 · 0 评论 -
LeetCode27 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。class Solution {public: int removeElement(vector<int&g...原创 2018-09-06 00:41:47 · 215 阅读 · 0 评论 -
LeetCode28 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。class Solution {public: int strStr(string haystack, string needle) { if(need...原创 2018-09-06 00:42:50 · 1701 阅读 · 0 评论 -
LeetCode70 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?这里写代码片class Solution {public: int climbStairs(int n) { // int re = 0; // if(n == 0 || n == 1){ // retur...原创 2018-09-06 00:49:51 · 5718 阅读 · 0 评论 -
LeetCode67 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。class Solution {public: int mySqrt(int x) { double y = x; double l = 0, r = double(y); ...原创 2018-09-06 00:48:58 · 2422 阅读 · 0 评论 -
LeetCode67 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。class Solution {public: string addBinary(string a, string b) { string s; int k = 0; int n = (a.size()<=b.size())?a....原创 2018-09-06 00:48:17 · 2594 阅读 · 0 评论 -
LeetCode66 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。class Solution {public: vector<int> plusOne(vector<int>& digits) { vector&...原创 2018-09-06 00:47:33 · 1699 阅读 · 0 评论 -
LeetCode58 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。class Solution {public: int lengthOfLastWord(string s) { if(s.size()) { if...原创 2018-09-06 00:46:38 · 2982 阅读 · 1 评论 -
LeetCode53 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。class Solution {public: int maxSubArray(vector<int>& nums) { //int sum=nums[0]; //int n=nums[0]; //for(int...原创 2018-09-06 00:45:52 · 4117 阅读 · 0 评论 -
LeetCode38 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5.
报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:111211211111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二” , “一个一”) , 即 1211。给定一个正整数 n ,输出报数...原创 2018-09-06 00:44:43 · 1576 阅读 · 0 评论 -
LeetCode35 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。class Solution {public: int searchInsert(vector<int>& nums, int target) { std::vector<int>:...原创 2018-09-06 00:43:41 · 1411 阅读 · 0 评论