
算法
刘奉钦-以书会友
这个作者很懒,什么都没留下…
展开
-
【位数组】数组中只出现一次的两个数字
位数组的运用 牛客网剑指offer: JZ3 数组中重复的数字 JZ56 数组中只出现一次的两个数字 位数组运用场景: 1.对一亿条数据进行去重、排序 2.判断一个数在一个数据集中是否存在 类似这样的场景都可以考虑用位数组来处理 用输入数据的值作为位数组的下标,进行标记。用0和1就可以区分输入的数据是否存在。 JZ3 数组中重复的数字 思路:开一个大小为10001的数组arr 遍历输入的数组,把输入的数据作为arr数组的下标,进行标记即可 public int duplicate (int[] numbe原创 2022-03-27 22:04:38 · 286 阅读 · 0 评论 -
剑指offer JZ33 丑数
丑数 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 输入7 输出8 public int nthUglyNumber(int n) { int a = 0, b = 0, c = 0; int[] dp = new int[n]; dp[0] = 1; for(int i = 1; i < n; i++原创 2021-05-04 22:13:39 · 145 阅读 · 0 评论 -
剑指offer JZ34第一个只出现一次的字符
第一个只出现一次的字符 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) public int FirstNotRepeatingChar(String str) { LinkedHashMap<Character,Integer> map = new LinkedHashMap<Character,Integer>();原创 2021-05-01 23:57:28 · 130 阅读 · 0 评论 -
剑指offer JZ31 整数中1出现的次数
整数中1出现的次数 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数 例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次 思路一 遍历 public int NumberOf1Between1AndN_Solution(int n) { //遍历,除以10取余,判断计数 int count = 0; for(int i=1;i<=n;i++){ int t = i; wh原创 2021-04-29 09:44:08 · 147 阅读 · 0 评论