算法
文章平均质量分 78
记录自己解决算法问题的思路,也欢迎大家批评指正.
扬扬得力
软件工程师
️ 计算机硕士
喜欢研究编程语言
展开
-
数组划分 & 合并排序数组
考察内容:链表,双指针时间:2020-09-18作者:guuzaa实现语言: C++掘金主页:????题目 1 : 数组划分题目链接 ????给一个数组和整数 k,让我们划分这个数组,把「小于」 k 的元素都移到左边,「大于等于」 k 的元素移到右边,并返回划分位置 i(nums[i] 是数组中第一个大于等于k的元素),要真正的划分数组。分析 ????读题之后,觉得跟快速排序的 partition 操作有点像,但是 pivot 不再是数组中第一个元素而是大于等于 k 的最小元素。所以要想解原创 2020-09-18 22:22:22 · 335 阅读 · 0 评论 -
LintCode T22 列表扁平化
考察内容:递归时间:2020-08-31 星期一作者:guuzaaLintCode T22题目给定一个列表(数组),列表中的元素可能是整数也可能是一个列表。题目要求是将这个列表转换成只包含整数的列表。原创 2020-08-31 19:13:50 · 237 阅读 · 0 评论 -
有符号右移和无符号右移,傻傻分不清楚。
接上篇文章——位运算:2的幂 。本篇文章介绍一个简单的位运算——右移。 二进制 计算机中数字都是以二进制的形式存储的,而位运算就是对数字的二进制表示形式操作。从节省硬件的角度出发(加法和减法都可以通过加法电路执行),二进制都是采用补码的形式表示,也就是每个数字二进制的首位是符号位:1表示为负数,0表示为正数。那么右移的时候,高位补0还是补1呢?右移分类在回答上面的问题之前,先插入一道题目(来自力扣191题)为了强调右移的分类的区别,我将用C++和JavaScript解题。下面是题目源代码:/.原创 2020-07-01 23:38:26 · 2288 阅读 · 0 评论 -
leetcode 231题 2的幂 位运算 c++实现
题目连接题目要求给定一个整数,编写一个函数来判断它是否是 2 的幂次方。思路思路一通过位运算遍历数字的每个二进制位,如果只有一个1,那么就是2的幂次方.比如,5的二进制是 00000101不是2的幂次方;而4的二进制是00000100是2的幂次方.那么现在问题转化为求一个数的二进制共有多少个1,如果只有一个,那么该数就是2的幂次方,否则不是.那怎样求一个数字的二进制的1的个数...原创 2020-03-09 22:30:45 · 507 阅读 · 0 评论 -
算法学习第二天:日期差值与进制转换
日期差值问题描述:给定两个日期,求两个日期之间的天数,如果两个日期连续,规定之间的日期差值为两天样例输入:2013010120130105样例输出:5思路先不妨假设第一个日期早于第二个日期,若晚于则交换两个日期一、令第一个日期不断加一至等于第二个日期为止,通过设置计数器(初值为1)记录所加天数。具体执行时,用整型接收两个日期,设置一个常量整型数组存储平年...原创 2020-01-03 23:03:44 · 288 阅读 · 0 评论 -
算法学习第一天:OJ黑盒测试中的多点测试
下面的内容大部分摘抄自胡凡的《算法笔记》黑盒测试是指:系统后台会准备若干组输入数据,然后提交的程序去运行这些数据,如果输出的结果与正确答案完全相同(字符串意义上的比较),那么就称通过了这道题的黑盒测试,否则会根据错误类型而返回不同的结果。根据黑盒测试是否对每组测试数据都单独测试或是一次性测试所有测试数据,可分为单点测试和多点测试。单点测试系统会判断每组数据的输出结果是否正确,如果...原创 2020-01-02 21:11:09 · 522 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
图片来自Unsplash1.最大公约数(Greatest Common Divisor)1.1定义能够整除多个整数的最大正整数。而多个整数不能都为零。例如8和12的最大公因数为4。 ——维基百科1.2 求解a,b的最大公约数记a,b的最大公约数是gcd(a,b)1.2.1 穷举思想gcd(a,...原创 2020-03-09 14:41:53 · 619 阅读 · 0 评论 -
CCF 201312-4 有趣的数 动态规划
CCF 有趣的数201412-4c++实现题目链接问题描述我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。 ...原创 2020-03-03 23:13:08 · 242 阅读 · 0 评论 -
CCF 201409-3 字符串匹配
CCF 201409-3 字符串匹配Java实现问题链接–>字符串匹配应该算是一道比较简单的第三题了:)直接说思路吧用数组存储n个字符串,依次遍历将每个字符串与第一个字符串比较(可以使用String类的indexof()方法),该方法如果没有相匹配的子字符串就返回-1,所以判断条件是if (arrStrings[i].indexOf(dest) >= 0)还有一个需要注意的...原创 2020-02-27 22:30:09 · 363 阅读 · 0 评论 -
201409-1 相邻数对
CCF 201409-1 相邻数对Java实现问题链接-> 相邻数对问题描述:给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1思路暴力枚举用数组存储这n个数,然后遍历每个元素,检查其他元素与该元素是否相差1.时间复杂度是O(n2)public static void main(String[] args) { Scanner sc = new Sc...原创 2020-02-26 22:33:44 · 249 阅读 · 0 评论