![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
没手指的蓝胖子
这个作者很懒,什么都没留下…
展开
-
leetcode--两数之和
1.自己的方法int* twoSum(int* nums, int numsSize, int target) { int result[2] = {0}; for(int i = 0; i < numsSize; i++) { if(nums[i]<=target) for(int j = i+1; j < nu...原创 2019-03-21 14:49:24 · 111 阅读 · 0 评论 -
leetcode——最长公共前缀
其实不难,就是……写了很久,最后还是参考别人的……char* longestCommonPrefix(char** strs, int strsSize) { int n=strsSize; if(0==n) { return ""; } int length=strlen(strs[0])+1; char* tmp=(ch...原创 2019-04-22 16:52:42 · 93 阅读 · 0 评论 -
leetcode——三数之和
用C语言写一直超时……快疯了然后用C++试了下就通过了class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; sort(nums.be...原创 2019-04-22 21:12:32 · 123 阅读 · 0 评论 -
leetcode——最接近的三数之和
跟三数之和一个思想int comp(void* a, void* b) { return *(int*)a > *(int*)b ? 1 : -1;}int threeSumClosest(int* nums, int numsSize, int target) { qsort(nums,numsSize,sizeof(int),comp); int res,...原创 2019-04-23 21:01:53 · 78 阅读 · 0 评论 -
leetcode——有效的括号
这个题目之前学数据结构的时候写过用栈实现class Solution {public: bool isValid(string s) { stack<char> st; int len = s.size(); if(len%2 != 0) return false; for(int i...原创 2019-05-04 22:22:17 · 97 阅读 · 0 评论 -
leetcode——四数之和
和三数之和思想一样,就是多加了一层循环class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> res; sort(nums.begin...原创 2019-04-29 10:55:37 · 89 阅读 · 0 评论 -
leetcode——删除链表的倒数第N个节点
用两个指针一次遍历之前没考虑到删除第一个节点,前面的指针越界问题,参考别人的代码改好了/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };...原创 2019-04-29 11:43:43 · 79 阅读 · 0 评论 -
leetcode——合并两个有序链表
简单题,当年的数据结构题新建一个链表,从头到尾遍历两个链表,插入到新链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cla...原创 2019-05-05 18:37:26 · 91 阅读 · 0 评论 -
leetcode——括号生成
采用回溯法这个思路比较简单,之前数据结构好像也做过class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; string tmp = ""; generate(res,tmp,n,n); ...原创 2019-05-06 21:09:48 · 281 阅读 · 0 评论 -
leetcode--盛水最多的容器
1.暴力解法随手就写出来了……就是很暴力……int maxArea(int* height, int heightSize) { int capacity = 0; for(int i = 0; i < heightSize;i++) { for(int j = i+1;j < heightSize;j++) { ...原创 2019-04-02 22:04:06 · 102 阅读 · 0 评论 -
leetcode--Z字形变换
解题思路:根据规律编号,发现行数和各字符行号之间的规律代码:char* convert(char* s, int numRows) { int len = strlen(s); char *r = (char*)malloc(sizeof(int)*(len+1)); int p = 0; if(numRows==1) return s; ...原创 2019-03-28 10:42:38 · 187 阅读 · 0 评论 -
leetcode--两数相加
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode *p1=l1; struct ListNode *p2=l2; struct ListNode *result=(struct ListNode *)malloc(sizeof(str...原创 2019-03-21 16:58:53 · 163 阅读 · 0 评论 -
leetcode--无重复字符的最长字串
思路:采用滑动窗口的方式,利用哈希表算法步骤:建立一个256位的数组代替哈希表,用来记录字符(因为ASCII表共能表示256个字符)定义两个变量 res表示窗口大小 left 表示窗口起始位置遍历字符串:如果当前字符之前未出现过,更新窗口大小如果当前字符出现过,但是不在窗口覆盖范围,更新窗口大小否则,就是当前字符在窗口覆盖范围有重复,就更新left最后每个字符对应的哈希表中的...原创 2019-03-22 11:22:32 · 105 阅读 · 0 评论 -
leetcode--整数反转
这一题比较简单就是一个取余、取整的问题然后就是溢出的判断,2^31=2147483648 最大能取2147483647,最小是-2147483648代码:int reverse(int x) { int rev = 0; int pop = 0; int INTMAX = pow(2,31)-1; int INTMIN = -pow(2,31); ...原创 2019-03-29 14:56:02 · 66 阅读 · 0 评论 -
leetcode--字符串换整数(atoi)
这个题目也很简单 就是刚开始没看清楚题目意思 导致思维很混乱后来重新理解了一遍题目 很快通过了以后还是要先理解题目意思再写代码……否则就是浪费时间代码:int myAtoi(char* str) { int INTMAX=pow(2,31)-1; int INTMIN=-pow(2,31); int len = strlen(str); int n...原创 2019-03-29 14:58:25 · 427 阅读 · 0 评论 -
leetcode--整数转罗马数,罗马数转整数
1、整数转罗马数暴力的很……自己写的代码简直没眼看char* intToRoman(int num) { char *r=(char*)malloc(sizeof(int)* (16)); int i = 0; if(num/1000 > 0) { switch(num/1000) { case 1:...原创 2019-04-03 22:09:37 · 150 阅读 · 0 评论 -
leetcode--寻找两个有序数组的中位数
思路:通过i,j将两个有序数组A B分为两个部分,然后两个左边部分中所有数小于两个右边部分由此 可以确定A[i-1] < B[j]B[j-1] < A[i]所有元素个数:m+n左边部分的元素个数之和: i+j=(m+n+1)/2 (取整)怎么划分?怎么找到i 和 j的位置?二分法从短的数组A上确定i 然后j=(m+n+1)/2 - i判断i的位置是否准...原创 2019-03-27 14:44:32 · 140 阅读 · 0 评论 -
leetcode--最长回文子串
回文就是顺序和逆序一样的字符串。试了两种方法1.中心扩展算法一个长度为n的字符串,中心个数为2n-1扩展方式:当中心点左右的字符相同,就扩展回文的边界left和right(left–,right++),直到左右边界的字符不相同。这样就得到了从这一中心点能扩展到的最长的回文子串。从头到位遍历所有中心点,记录最长的回文子串~解决问题代码:char* longestPalindrome...原创 2019-03-27 21:01:22 · 111 阅读 · 0 评论 -
leetcode--回文数
挺简单的bool isPalindrome(int x) { if(x<0) return false; else { if(reverse(x) == -1) return false; if(x==reverse(x)) return true; el...原创 2019-04-01 17:34:15 · 106 阅读 · 0 评论 -
Leetcode——最大子序和
1、采用分治法,求最大子序和把数组nums以中间位置(mid)分为左(left)右(right)两部分. 那么有, left = nums[0]...nums[mid - 1] 和 right = nums[mid + 1]...nums[len-1]最大子序列和的位置有以下三种情况:考虑中间元素nums[mid], 跨越左右两部分,这里从中间元素开始,往左求出后缀最大,往右求出前缀最...原创 2019-10-08 21:53:41 · 142 阅读 · 0 评论