2019年6月30日
摘要: 题目描述实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,则输出为2 常规解法首先把n和1做位运算,判断n的最低位是不是1,然后把1左移一位得到2,再把n和2做位运算,判断n的次低位是不是1…这样反复左移。循环的次数等于整数二进制的位数,32位的整数需要循环 阅读全文
posted @ 2019-06-30 12:25 激流勇进1 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 题目描述只包含质因子2、3和5的数称作丑数(UglyNumber)。例如6、8都是丑数,但14不是,因为它包含质因子7,习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路:1、逐个判断逐个判断每个整数是不是丑数。根据丑数的定义,丑数只能被2,3,5整除,也就是说,如果一个数能被2 阅读全文
posted @ 2019-06-30 12:24 激流勇进1 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题目描述请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。 示例 1:输入: " -42"输出: -42解释: 第一个非空白字符为 '-', 它是一个负号。 示例 2:输入: "4193 with words"输出: 4193解释: 转换截止 阅读全文
posted @ 2019-06-30 12:23 激流勇进1 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路一遍历数组是保存两个值:一个是数字中的一个数字,另一个是次数。当遍历到下一个 阅读全文
posted @ 2019-06-30 11:38 激流勇进1 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 题目很简单 分析蛮无聊的一道题。状态转移十分显然然后就做完了。 #include <bits/stdc++.h>#define sc(n) scanf("%d",&n)#define pt(n) printf("%d\n",n)#define rep(i,a,b) for(int i=a;i<=b; 阅读全文
posted @ 2019-06-30 11:34 激流勇进1 阅读(104) 评论(0) 推荐(0) 编辑