LeeCode】的更多相关文章

学习这件事在任何时间都不能停下.准备坚持刷leecode来提高自己,也会把自己的解答过程记录下来,希望能进步. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution. Example: Given n…
逻辑简单,代码难写,基础不劳,leecode写注释不能出现中文,太麻烦,我写了大量注释,链表问题最重要的就是你那个指针式干啥的 提交地址https://oj.leetcode.com/problems/insertion-sort-list/ /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; *…
以前觉得后续遍历最难写,今天看了篇博客http://blog.csdn.net/sgbfblog/article/details/7773103,其实却是我们仔细比较后续遍历和先序遍历,其实后续遍历就是按照  根右左 的方式先序访问然后逆序就是答案了,会先序就会逆序了 leecode 的AC代码: public class Solution { public List<Integer> postorderTraversal(TreeNode root) { ArrayList<Integ…
写完才知道自己学习都是似是而非啊,大家可以也在leecode上提交代码,纯手写,离开eclipse第一种方式:数据结构书上的,使用栈大概思路.1.不断将根节点的左孩子的左孩子直到为空,在这个过程入栈.2.因为栈顶的节点的左孩子为空,所以栈顶的的节点的左子树肯定访问完毕,所以出栈后直接指向右孩子.其实这里面有个思想迭代和递归的本质相同之处是什么?以后会写一篇我的思考. public class Solution { public List<Integer> preorderTraversal(T…
写了好久,终于写成了.第一次zai leecode错题,题目质量很高,适合面试,与 1.归并排序是稳定的,在java中 Arrays.sort(a);中对于对象的排序就是归并排序.对于原子类型数据使用的是快排. 2.算法复杂度,我们都知道归并排序的最好最坏最差复杂度为nlogn,空间复杂度为n,在链表当中,空间复杂度j降为O(1). 3.写链表的排序 1.分: 使用书上的快慢指针来获得中间节点,分割成2个链表 2.和: 将两个链表合成一个,比较简单 3. 主程序 ListNode lmerge(…
class Solution { public: string reverseWords(string s) { string res; stack<char> sta; string::iterator iter = s.begin(); while(iter<s.end()) { if(*iter==' ')//如果遇到空格,就把栈内容弹到res中,然后补个空格 { while(!sta.empty()) { res.push_back(sta.top()); sta.pop();…
leecode题目描述如下: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 思路: 最开始想到的是使用排序,排序之后就很容易找到非重复元素了. 后面看到网上有更巧妙的解决办法,即使用异或来找出非重复元素,因为重复的元素经异或之后就互相抵消为0了,最后数组各个元素经过异或计算之后的结果就是那个唯一的非重复元素. 代码: class Solution(object): def singleNumber(self, nums): ""…
class Solution { public: int climbStairs(int n) { vector<unsigned long long> num;//斐波那契数列 num.push_back(); num.push_back();//头两个单独设置 ;i<n;i++)//使用循环而不是递归,节省内存和时间 num.push_back(num[i-]+num[i-]); ]; } }; 分析; 就知道三行的递归过不去,用数组也没差啦,只不过用unsigned long lo…
class Solution { public: vector<vector<int>> permute(vector<int>& nums) { int len=nums.size(); vector<vector<int>> res; )//特殊情况 { vector<int> res1; res.push_back(res1); return res; } )//迭代返回条件 { res.push_back(nums);…
class Solution { public: string longestPalindrome(string s) { int len = s.length(); || len == ) return s; , max_num = ; ; i < len; i++)//检测奇数上的左右是否相同,例如aba,以b为中心 { , tt = i + , cur_num = ; && tt < len && s[t] == s[tt])//我之前把s[t] == s…