随笔分类 - 算法
摘要:
给定一个数组arr,和一个整数num。请把小于num的数放在数组的左边,等于num的数放在中间,大于num的数放在数组的右边。
要求额外空间复杂度O(1),时间复杂度O(N)
阅读全文
给定一个数组arr,和一个整数num。请把小于num的数放在数组的左边,等于num的数放在中间,大于num的数放在数组的右边。
要求额外空间复杂度O(1),时间复杂度O(N)
阅读全文
摘要:
利用递归实现,对于一个数组,将其任意划分为两部分,如果左部分以及右部分分别是有序的,那么统计左边任意一个数产生的小和,可以看成是求解右边有多少个数比当前数大的问题,右边某一个数A大于左边这个数B,那么A后面的数都会大于B,当统计完完右边区域的长度数目n, 就有n个小和B产生。
阅读全文
利用递归实现,对于一个数组,将其任意划分为两部分,如果左部分以及右部分分别是有序的,那么统计左边任意一个数产生的小和,可以看成是求解右边有多少个数比当前数大的问题,右边某一个数A大于左边这个数B,那么A后面的数都会大于B,当统计完完右边区域的长度数目n, 就有n个小和B产生。
阅读全文
摘要:
改造一个栈,在满足基本的条件下,再添加一个返回最小值的方法
阅读全文
改造一个栈,在满足基本的条件下,再添加一个返回最小值的方法
阅读全文
摘要:找出数组中出现了奇数次的两个数 题目描述 一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数 题目思路: 思路:对数组所有的数进行异或运算,偶数个数的数异或结果为0,将这两个要找的数标记为A、B,也就是最终结果为A、B异或的结果,此时取出右边第一个1,A、B在此位置的值不相
阅读全文
摘要:提取一个int类型数最右侧的1 算法描述 把一个int类型的数,提取出最右侧的1来,例如: 6 对应的二进制位 0000 0110,那么取出来的应该是0000 0010 算法思路 对原数0000 0110取反,将原数右侧1右边的0位全变成了1(1111 1001), 这时候如果加1,会产生进位到原数
阅读全文
摘要:基础排序算法 1、基本介绍 排序算法比较基础,但是设计到很多计算机科学的想法,如下: 1、比较和非比较的策略 2、迭代和递归的实现 3、分而治之思想 4、最佳、最差、平均情况时间复杂度分析 5、随机算法 2、排序算法的分类 算法分类 算法总结 3、冒泡排序 (1)冒泡排序的介
阅读全文

用栈实现一个队列,保证先进先出.
浙公网安备 33010602011771号