LeetCode
LeetCode
dos diosas
这个作者很懒,什么都没留下…
展开
-
LeetCode:704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], targ...原创 2020-04-22 12:48:33 · 94 阅读 · 0 评论 -
LeetCode:007.整数反转
class Solution: def reverse(self, x: int) -> int: if x < 0: x = -x while x % 10 == 0: x = x / 10 x = int(x) x = str(x)...原创 2020-04-22 14:27:28 · 75 阅读 · 0 评论 -
LeetCode:001.两数之和
int* twoSum(int* nums, int numsSize, int target, int* returnSize){ //使用暴力破解 int *p=(int*)malloc(sizeof(int)*2); for(int i=0;i<numsSize-1;i++) { for(int j=i+1;j<numsSize;j...原创 2020-04-22 14:30:40 · 86 阅读 · 0 评论 -
LeetCode:009.判断回文数
class Solution: def isPalindrome(self, x: int) -> bool: l = list(str(x)) s = list(str(x)) l.reverse() if l == s: res=True return res ...原创 2020-04-22 17:52:45 · 90 阅读 · 0 评论 -
LeetCode:104.二叉树的最大深度
int maxDepth(struct TreeNode* root){ if(root==NULL) { return 0; } else if(root->left==NULL&&root->right==NULL) { return 1; } else { ...原创 2020-04-22 19:38:58 · 106 阅读 · 0 评论 -
LeetCode:021.合并两个有序链表
经过一个高人点拨终于搞定,这是一个使用递归的好例子。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, ...原创 2020-04-22 21:17:00 · 90 阅读 · 0 评论 -
LeetCode:023.合并K个有序链表
起初自己在做这道习题的时候,并没有通过,自己的错误在于没有考虑链表可能为空的情况,所以参考并且学习其他人的代码,发现自己的错误在于没有注意一些边界情况,所以导致只有编译通过,但是真正提交测试的时候出错。/** * Definition for singly-linked list. * struct ListNode {...原创 2020-04-23 12:50:05 · 79 阅读 · 0 评论 -
LeetCode:206.翻转链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* re...原创 2020-04-23 13:17:39 · 72 阅读 · 0 评论 -
LeetCode:217.存在重复元素
class Solution {public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(),nums.end()); if(nums.size()==0) { return false; } ...原创 2020-04-23 13:37:05 · 53 阅读 · 0 评论 -
LeetCode:169.多数元素
本题解题策略:一组序列排好序之后,处于中间的那个元素必定是超多半数的元素。class Solution{ public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums...原创 2020-04-23 14:10:58 · 85 阅读 · 0 评论 -
LeetCode:094.二叉树的中序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-23 16:37:15 · 92 阅读 · 0 评论 -
LeetCode:144.二叉树的前序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-23 16:40:44 · 134 阅读 · 0 评论 -
LeetCode:145.二叉树的后序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-23 16:46:01 · 71 阅读 · 0 评论 -
LeetCode:121.买卖股票的最佳时机
int maxProfit(int* prices, int pricesSize){ if(pricesSize==0) { return 0; } int price=0; for(int i=0;i<pricesSize;i++) { ...原创 2020-04-23 18:06:01 · 72 阅读 · 0 评论 -
LeetCode:013.罗马数字转整数
整体思路如下,正如题目的提示所提及的,一个表示自实际数字小的字母出现在一个实际表示数字大的字母的左边无非六种情况,所以只需要顺序的对相邻的两个元素判断它们的优先次序即可解决此问题。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 ...原创 2020-04-24 10:04:45 · 76 阅读 · 0 评论 -
LeetCode:102. 二叉树的层序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-24 11:05:08 · 113 阅读 · 0 评论 -
LeetCode:035.搜索插入位置
class Solution {public: int searchInsert(vector<int>& nums, int target) { //lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置的迭代器 //lower_bound-对象的begin()属性返回的才是数值应当插入的位置 ...原创 2020-04-24 11:47:03 · 84 阅读 · 0 评论 -
LeetCode:905.按奇偶排列数组
值得注意的是while循环中的第一个if语句绝不可以拿到下面去,否则就会导致多判断一次而出现错误。class Solution: def sortArrayByParity(self, A: List[int]) -> List[int]: i = 0 j = len(A) - 1 while (i < j): ...原创 2020-04-24 12:31:41 · 91 阅读 · 0 评论 -
LeetCode:906.超级回文数
这道题作为一个困难的问题,考察的是用户对所编写程序执行效率的掌握,我自己在做的时候,优先考虑到一般的解法,然而这样会导致最后判断比较大的数字的时候超出时间限制,但是这里仍然是把所谓"不正确(也即超时)"的代码贴上,用作后续两种解法的对比。class Solution: def superpalindromesInRange(self, L: str, R: str) -> i...原创 2020-04-24 14:25:29 · 191 阅读 · 0 评论 -
LeetCode:019.删除链表的倒数第N个节点
这是一个中等难度的问题在王道考研教材中也有提及,但是时间过得过于久远,思路已经模糊不清了,这里设置了一个头节点,将删除首元素以及其他元素的操作统一了起来,使用了双指针的技巧,解决该问题。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x...原创 2020-04-25 12:14:28 · 59 阅读 · 0 评论 -
LeetCode:020.有效的括号
这里的算法与此前所学习的算法训练营课程中的括号匹配问题,相类似,不过由于这里调用的是STL中的stack标准库文件所以,有基础略作改动。class Solution {public: bool parent(const char exp[], int lo, int hi) { //表达式括号匹配检查,可兼顾三种括号 stack<char&...原创 2020-04-25 12:31:03 · 68 阅读 · 0 评论 -
LeetCode:026. 删除排序数组中的重复项
从下面的实现代码中可以看到,对于LeetCode上的习题,如果可以直接使用STL标准模板库中提供的算法是最合适不过的了,这样可把时间花在解决问题上而不是重复造轮子。class Solution {public: int removeDuplicates(vector<int>& nums) { //unique()函数将重复的元素放到vector的尾...原创 2020-04-25 13:00:34 · 60 阅读 · 0 评论 -
LeetCode:048. 旋转图像
class Solution {public: void rotate(vector<vector<int>>& matrix) { //首先对向量进行转置 for(int i=0;i<matrix[0].size();i++)//控制行 { for(int j=0;j<i...原创 2020-04-25 14:31:03 · 68 阅读 · 0 评论 -
LeetCode:050.Pow(x,n)
一种正确但是超时的方法。class Solution: def myPow(self, x: float, n: int) -> float: if n==0: return 1; if n>0: sum=1; ...原创 2020-04-25 15:00:00 · 60 阅读 · 0 评论 -
LeetCode:070.爬楼梯
int climbStairs(int n){ if(n==1||n==0) { return 1; } int i=1,j=1; int k=2; int res; while(k<=n) { res=i+j; i=j; j=res; k++; ...原创 2020-04-25 22:02:17 · 55 阅读 · 0 评论 -
LeetCode:083. 删除排序链表中的重复元素
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* deleteDuplicates(struct ListNode* head){ struct ListNode* ...原创 2020-04-25 22:09:12 · 76 阅读 · 0 评论 -
LeetCode:098.验证二叉搜索树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-25 22:31:59 · 137 阅读 · 0 评论 -
LeetCode:107.二叉树的层序遍历II
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-25 22:42:17 · 77 阅读 · 0 评论 -
LeetCode:110. 平衡二叉树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-25 23:00:44 · 51 阅读 · 0 评论 -
LeetCode:461.汉明距离
class Solution {public: int hammingDistance(int x, int y) { bitset<32>obj1(x); bitset<32>obj2(y); int i = 0; int dis = 0; while (i < 32) ...原创 2020-04-26 10:49:18 · 77 阅读 · 0 评论 -
LeetCode:504.七进制数
class Solution {public: string convertToBase7(int num) { stack<int>obj; string s; if(num==0) { return to_string(0); } int a; ...原创 2020-04-26 11:16:35 · 58 阅读 · 0 评论 -
LeetCode:509.斐波那契数
class Solution {public: int fib(int N) { if(N==0) { return 0; } if(N==1) { return 1; } return fib(N-1)+fib(N-2); ...原创 2020-04-26 11:38:03 · 65 阅读 · 0 评论 -
LeetCode:515. 在每个树行中找最大值
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2020-04-26 11:50:42 · 88 阅读 · 0 评论 -
LeetCode:520. 检测大写字母
class Solution: def detectCapitalUse(self, word: str) -> bool: return word.islower() or word.istitle() or word.isupper()原创 2020-04-26 12:24:53 · 77 阅读 · 0 评论 -
LeetCode:537.复数乘法
class Solution: def complexNumberMultiply(self, a: str, b: str) -> str: e=int(a.split("+")[0]) f=int(a.split("+")[1].split("i")[0]) g=int(b.split("+")[0]) h=int(...原创 2020-04-26 12:44:49 · 75 阅读 · 0 评论 -
LeetCode:061. 旋转链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */int getLength(struct ListNode* head){ struct ListNode* p=head; int i=0;...原创 2020-04-27 19:33:04 · 57 阅读 · 0 评论 -
LeetCode:066.加一
首先给出一个超出时间限制,但是正确的办法:class Solution {public: bool isAll9(vector<int>& digits) { //判断是否所有的数字都是九 int i=0; while(i<digit...原创 2020-04-27 20:28:29 · 92 阅读 · 0 评论 -
LeetCode:191. 位1的个数
class Solution {public: int hammingWeight(uint32_t n) { bitset<32>s{n}; return s.count(); }};原创 2020-04-28 00:09:13 · 84 阅读 · 0 评论 -
LeetCode:226.反转二叉树
‘’’cpp/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; ...原创 2020-04-28 00:10:17 · 88 阅读 · 0 评论 -
LeetCode:231. 2的幂
class Solution {public: bool isPowerOfTwo(int n) { //首先将其转化为二进制 bitset<128>s(n); if(s.count()==1) { return true; } else {...原创 2020-04-28 00:11:01 · 81 阅读 · 0 评论