摘要: 题意: 给出n个元素,请产生出所有的全排列。思路: 注意到可能会有相同的排列出现,比如 {2,2}。还有可能是乱序列(大部分情况下都是无所谓的)。 递归(1):产生的过多的多余vector。 1 class Solution { 2 public: 3 void recursion(v... 阅读全文
posted @ 2015-11-02 22:26 xcw0754 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个n*m的矩阵,每次可以往下或右走,经过的格子中的数字之和就是答案了,答案最小为多少?思路: 比较水,只是各种空间利用率而已。 如果可以在原空间上作修改。 1 class Solution { 2 public: 3 int minPathSum(vector>& grid... 阅读全文
posted @ 2015-11-02 21:56 xcw0754 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意: 用迭代法输出一棵二叉树的后序遍历结果。思路: (1)用两个栈,一个存指针,一个存标记,表示该指针当前已经访问过哪些孩子了。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int ... 阅读全文
posted @ 2015-11-02 21:25 xcw0754 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个数组只可能含有3种数据,分别为1,2,3,请将数组排序(只能扫一遍)。思路: 如果扫两遍的话,用个桶记录一下,再赋值上去就行了。 1 class Solution { 2 public: 3 void sortColors(vector& nums) { 4 ... 阅读全文
posted @ 2015-11-02 20:04 xcw0754 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个环形序列,可以将其切成连续的k段子序列,那么gcd( 每段子序列的和 )就是优美程度。输出n个整数,表示当k=[1, n] 时的最大优美程度。思路: 观察一下,当切成1段的时候,gcd就是sum[整个序列],为最大。考虑切成2段,那么最好就是能让这个环切成2段和为sum[整个序列]... 阅读全文
posted @ 2015-11-02 14:31 xcw0754 阅读(262) 评论(0) 推荐(0) 编辑