摘要: 首先要知道异或运算(xor)符号:⊕ 1和1、0和0异或等于0,01和10异或等于1 怎么算海明冗余码 假如数据码长度为k,再加上长度为r的校验码,r位的校验码可以表示2^ r种不同情况,那么我们要求2^ r大于k+r这样我们才可以表示任意出错的数据码位数。 考察数据码:1011 我们规定校验码放在 阅读全文
posted @ 2019-05-03 16:56 NeoZy 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: 阅读全文
posted @ 2019-05-03 02:33 NeoZy 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 二分法,先对行二分找出结果可能存在的行,再对这一行二分查找。O(Log m+Log n),m、n分别为矩阵的高和宽。 1 class Solution { 2 public: 3 bool searchMatrix(vector<vector<int>>& matrix, int target) { 阅读全文
posted @ 2019-05-02 02:49 NeoZy 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 更新2019年11月4日 04:26:35 睡不着觉起来寻思寻思干点啥吧,好像好久没写堆排了。于是写了个索引从0开始的堆排,这次把建堆函数略了并在heapsort主函数里,索引从0开始到size-1结束,长度size。 这个堆排和索引从1开始的堆排区别就是对于节点i,两个子节点分别为2i+1和2i+ 阅读全文
posted @ 2019-04-16 21:47 NeoZy 阅读(308) 评论(0) 推荐(0) 编辑
摘要: def mergesort(nums,le,ri): if le>ri-2: return 0 mi=le+(ri-le)//2 a=mergesort(nums,le,mi) b=mergesort(nums,mi,ri) c=merge(nums,le,mi,ri) return a+b+c d 阅读全文
posted @ 2019-04-10 23:35 NeoZy 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 算法导论:22页2.3-7 描述一个运行时间为O(nlogn)的算法,找出n个元素的S数组中是否存在两个元素相加等于给定x值 AC解: a=[1,3,6,7,9,15,29] def find2sumx(nums,x): nums.sort() le,ri=0,len(nums)-1 while l 阅读全文
posted @ 2019-04-10 21:57 NeoZy 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 练习实例3题目:一个整数,它加上100后是一... 阅读全文
posted @ 2019-04-08 18:45 NeoZy 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-04-06 00:31 NeoZy 阅读(2395) 评论(0) 推荐(0) 编辑
摘要: KMP是上学期学数据结构时候学的,当时就没学太明白,后来又自己琢磨了几次,但始终是一知半解。今天起床了又想起来KMP,以下是思考得到的一点东西。 首先学过kmp的都知道要写两个函数,一个计算next数组,一个kmp主体函数,那么next数组里存的到底是啥呢。首先答案是:next[i]存的是字符串[0 阅读全文
posted @ 2019-03-28 19:57 NeoZy 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 已知x补码求-x的补码 方法:将x补码各位(符号位也算)全部取反再加1 例子: 整数: +6:补码00000110 -6的补码: 先取反:11111001,再加1,等于11111010 -6导+6略 小数: +0.75:补码0.11 -0.75:1.01 上述过程是可逆的,正负互转都可以 已知x补码 阅读全文
posted @ 2019-03-26 15:24 NeoZy 阅读(1342) 评论(0) 推荐(0) 编辑