LeetCode
文章平均质量分 83
MR_kris
king
展开
-
求字符串中字符全排列 和 组合
二、字符串的组合(1)若不考虑字符串中有重复字符(即假设字符串中无重复字符)(2)若考虑字符串中有重复字符(即假设字符串中有重复字符)一、字符串的全排列(1)若不考虑字符串中有重复字符(即假设字符串中无重复字符)此时“abc”的全排列为:abc、acb、bac、bca、cab和cba。 我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字原创 2015-09-25 15:01:02 · 381 阅读 · 0 评论 -
leetcode RelateArray
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。不合题意的解法如下:我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234→4abcd123→34abcd12→234abcd1→1234abcd。伪代码如下:代码清单2-33 RightShift(int* arr, int N, int K原创 2015-09-11 21:13:37 · 266 阅读 · 0 评论 -
Permutation sequence
n个数的全排列,按照从下到大的顺序排列,问第k个位置的数是多少?这个问题有几种方法,不过只有康托编码的时间复杂度是最低的。是O(n),简直凶残。1.用next_permutation来求,这个也是leetcode上的一道题,就是求其下一个排列,然后对1234…n 运行n次 next_pernutation方法就能得到第k个数了思想就是这样。2.利用康托编码来求。其实就是康托原创 2015-09-14 10:47:28 · 325 阅读 · 0 评论 -
Next Permutation
这道题给出一个数列,求大于这个数列的最小数列。例如:1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1二、 分析喜欢使用C++的童鞋或许会马上想到next_permutation()这个库函数,没错,其实这道题就是实现的它(严格说来只是初步实现),如果可以的话,如果直接输入这一行代码就可通过:?123原创 2015-09-13 18:29:14 · 540 阅读 · 0 评论 -
Leetcode 199 Binary Tree Right Side View 二叉树右视图
原题地址https://leetcode.com/problems/binary-tree-right-side-view/题目描述Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from原创 2015-10-29 10:53:06 · 398 阅读 · 0 评论