前言 工作已经有一段时间了,有的时候会跟同事们打趣:“ 如果你让我现在去手写一个快速排序,我怕是真的写不出来 ”。 如果不接触一段时间的算法,真的很容易就忘了。不信?你现在想想你自己能不能手写一个堆排序。 经历过校招的人都知道, 算法和数据结构 都是不可避免的。 在笔试的时候,最主要的就是靠算法题。 ...
分类:
编程语言 时间:
2020-03-16 14:32:48
阅读次数:
69
1.求二进制数中1的个数(题目与解法均来自《编程之美》第二章) 题目:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。 解法1:举一个8位二进制的例子来分析,对于二进制操作,我们知道,除以一个2,原来的数字就会少个0,如果除的过程中有余,那么就表示当前位置 ...
分类:
编程语言 时间:
2020-03-15 19:00:17
阅读次数:
78
题目描述 给出一个序列包含n个正整数的序列A,然后给出一个正整数x,你可以对序列进行任意次操作的,每次操作你可以选择序列中的一个数字,让其与x做按位或运算。你的目的是让这个序列中的众数出现的次数最多。 请问众数最多出现多少次。 输入 输入第一行仅包含两个正整数n和x,表示给出的序列的长度和给定的正整 ...
分类:
编程语言 时间:
2020-03-14 20:22:04
阅读次数:
618
很多算法题中使用位运算能够巧妙的解决很多问题,比如: 找出只出现一次的数 如果数组中只有一个数字出现一次,其他数字都出现两次。试找出这个数据 通常的情况,我们会采用遍历的思路。但是其实不用。因为异或运算有个十分重要的性质:任何一个数字异或它自己都等于0,而0异或任何数都等于那个数。 因此,但凡出现两 ...
分类:
其他好文 时间:
2020-03-14 20:07:22
阅读次数:
51
第一题: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = ...
分类:
编程语言 时间:
2020-03-13 21:03:39
阅读次数:
132
前言 这两天在刷算法题,其中涉及到了高精度算法,由于笔者使用C++,所以需要手动去模拟实现。使用java和python的同学可以不用担心,Java有BigDecimal类可以实现,python可以直接实现。 好了下面我们直接上代码,代码都有相应的注释,相信可以看懂的。 代码 更多内容大家可以访问我的 ...
分类:
编程语言 时间:
2020-03-12 12:44:18
阅读次数:
58
面试的时候,常常会有一道算法题,而测试而言这道算法题往往是字符串处理,所以掌握字符串处理常用的方法就十分必要了 //String的用法: //java中String是只读的,没有办法进行变换,因此需要使用StringBuilder。 String.length() //获取字符串的长度 String ...
分类:
编程语言 时间:
2020-03-12 11:22:51
阅读次数:
64
1 // #include <stdio.h> 2 // #include <stdlib.h> 3 4 // typedef char ElementType; 5 // typedef struct TNode *Position; 6 // typedef Position BinTree; ...
分类:
编程语言 时间:
2020-03-09 00:48:28
阅读次数:
125
1 // #include <stdio.h> 2 // #include <stdlib.h> 3 4 // typedef char ElementType; 5 // typedef struct TNode *Position; 6 // typedef Position BinTree; ...
分类:
编程语言 时间:
2020-03-08 23:18:58
阅读次数:
153
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 算法题太折磨了 选定第一个丑数1,根据丑数的定义,可知以后的丑数必然是在1的基础上乘以2,乘以3,乘以5,因此可以得 ...
分类:
其他好文 时间:
2020-03-08 00:59:58
阅读次数:
85