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