面试算法
bluefly-hrbust
这个作者很懒,什么都没留下…
展开
-
面试题56 - I 数组中数字出现的次数
题意一个数组,有两个数字只出现一次,其他数字出现两次,如何在O(N)的复杂度,O(1)的空间复杂度情况下求出这两个数字?思路这个题之前做校赛的时候做过,还是很简单,由异或的性质,我们很容易得知道,把所有数字都异或一次,答案就是res=a^b(那俩单独的数字的异或),那么怎么利用好这个res呢?由于本题不能开数组,无法从数据结构或者某个算法的角度去考虑,那么肯定是用位运算那么考虑把这个res的...原创 2020-04-28 20:03:10 · 167 阅读 · 0 评论 -
leetcode 搜索旋转排序数组
搜索旋转排序数组思路其实应该注意的是,题目说了数组是由一个递增数组旋转而来,那么怎么用好这个数组递增???其实你可以发现这个数组只会有一种情况要么全递增,要么是分两端递增,并且左端递增的所有值一定比右段递增的所有值大,那么我们其实只需要看这个查找的数是在左边的递增序列,还是右边的递增序列,在二分的时候设置一下标记就可以了坑点有空输入,最开始特判一下吐槽看了半天题意都没看懂,是不是我语文...原创 2020-04-27 20:13:32 · 138 阅读 · 0 评论 -
无序数组取中位数问题
解决快速求出无序数组的中位数方法一:快排思想思想:利用快排思想。具体解释,其实简单,我们利用的就是一个东西,快排每次选取一个数,然后把比这个数字小的扔到前面,把比这个数字大的数放到前面,那么对取的这个中间数,它的位置一定是正确的,然后我们考虑这个数字的位置,如果比中位数的位置大,就往前面那个区间继续找中位数的位置,反之如果中位数的位置,比这个标准位置的位置小,那么一定是在这个数字后面一个...原创 2020-04-14 23:11:36 · 837 阅读 · 0 评论