LeetCode
文章平均质量分 66
EmberWn
初学者
展开
-
寻找数组中只出现一次的数
有三个类似的问题,分别是1、数组中除了一个数只出现一次,其他所有数都成对出现。这个问题的解法是将所有数异或,然后得到的结果就是我们要求的数。2、数组中有两个数只出现一次,其他数都成对出现。解法是先将所有的数进行异或,得到一个中间值。这个值为两个不同数异或的结果。然后找到为1的位,这个位代表这两个数不相同的位。然后根据它与两个数异或,将这两个数分到两个不同的数组里。问题就转化成第一个问题了。然后可以...原创 2018-04-07 22:53:24 · 1104 阅读 · 1 评论 -
全排列
找到下一个排列的算法从数组的尾部开始找到第一个非递增的,然后把该数后面的进行翻转。再找到第一个比它大的,交换它们的位置,即为下一个排列。通过它可以找到全排列(无论包不包含重复元素) void nextPermutation(vector<int>& nums) { int n = nums.size(); int i = n - 2; ...原创 2018-04-15 15:59:03 · 193 阅读 · 1 评论