LeetCode - 排列相关题目】的更多相关文章

1.获取全排列 https://leetcode.com/problems/permutations/submissions/ 按字典序输出: 这里用的是vector<int>,不是引用.指针,也就是说深层次中的递归不会影响到前面层vector中的数据. class Solution { public: vector<vector<int>>ans; void dfs(vector<int>arr, int k, int n) { if (k == n) {…
leetcode tree相关题目小结 所使用的方法不外乎递归,DFS,BFS. 1. 题100 Same Tree Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identical and the nodes have the same value Ex…
刷完了LeetCode链表相关的经典题目,总结一下用到的技巧: 技巧 哑节点--哑节点可以将很多特殊case(比如:NULL或者单节点问题)转化为一般case进行统一处理,这样代码实现更加简洁,优雅 两个指针--链表相关的题目一般都需要用到两个指针:prev指针和cur指针 头插法--主要用于reverse链表 前后指针/slow fast指针--用于检测链表是否存在环…
最近在做LeetCode上面有关二叉树的题目,这篇博客仅用来记录这些题目的代码. 二叉树的题目,一般都是利用递归来解决的,因此这一类题目对理解递归很有帮助. 1.Symmetric Tree(https://leetcode.com/problems/symmetric-tree/description/) class Solution { public: bool isSymmetric(TreeNode* root) { return root == NULL || isMirror(roo…
1.46题,全排列 https://leetcode-cn.com/problems/permutations/ class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ n = len(nums) results = [] def backtrack(first = 0): if first ==…
暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下.首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向. 下面直接看看LeetCode上的题目: 206. Reverse Linked List 这是一道最基本的链表反转题目. /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Lis…
LeetCode: Palindrome 回文相关题目汇总 LeetCode: Palindrome Partitioning 解题报告 LeetCode: Palindrome Partitioning II 解题报告 Leetcode:[DP]Longest Palindromic Substring 解题报告 LeetCode: Valid Palindrome 解题报告…
接上文leetcode - 位运算题目汇总(上),继续来切leetcode中Bit Manipulation下的题目. Bitwise AND of Numbers Range 给出一个范围,[m, n](0 <= m <= n <= 2147483647),返回这些数字的与运算结果. 直接逐个做与运算,TLE,我们得发现高效解法. 我们把[0, 15]用二进制码表示出来: 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0…
首先表达我对leetcode网站的感谢,与高校的OJ系统相比,leetcode上面的题目更贴近工作的需要,而且支持的语言广泛.对于一些比较困难的题目,可以从讨论区中学习别人的思路,这一点很方便. 经过一段时间的练习,我感觉自己的算法水平还是有很大的提升的.与学校开的算法导论的课程相比,我觉得实实在在的做题,比学习理论更符合我的认知方式.可能我属于那种脑子记不住,但是可以用“肌肉”去记忆的类型吧. 在做题的时候,我会尝试用感觉好玩的语言来写.如果把做题当成一种解谜游戏的话,那语言就是玩这个游戏选择…
1.文字描述: 已知一颗二叉树的前序(后序)遍历序列和中序遍历序列,如何构建这棵二叉树? 以前序为例子: 前序遍历序列:ABCDEF 中序遍历序列:CBDAEF 前序遍历先访问根节点,因此前序遍历序列的第一个字母肯定就是根节点,即A是根节点:然后,由于中序遍历先访问左子树,再访问根节点,最后访问右子树,所以我们找到中序遍历中A的位置,然后A左边的字母就是左子树了,也就是CBD是根节点的左子树:同样的,得到EF为根节点的右子树. 将前序遍历序列分成BCD和EF,分别对左子树和右子树应用同样的方法,…