蓝桥云课《算法很美》1.8 1.9出现k次与出现1次
2022/1/14 17:07:02
本文主要是介绍蓝桥云课《算法很美》1.8 1.9出现k次与出现1次,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 题目
- 思路
- 代码
题目
数组中只有一个数出现了1次,其他的数都出现了k次,请输出只出现了1次的数。
思路
解析:把十进制的数转化为k进制,k个k进制的数进行不进位相加,结果是0;那么剩下的就是那个出现一次的数。
eg:有10个11进行相加,原本1*10=10,原本应该进位的1舍去,就只能剩下0了。
代码
public class _07_出现k次 { public static void main(String[] args) { // TODO Auto-generated method stub int [] arr= {2,2,2,9,7,7,7,3,3,3,6,6,6,0,0,0}; int len=arr.length;//len:16 char[][] kRadix=new char[len][]; //kRadix:char[16][] int k=3; int maxlen=0; //转成k进制字符数组 //对于每个数字 for(int i=0;i<len;i++) { kRadix [i]=new StringBuilder(Integer.toString(arr[i],k)).reverse().toString().toCharArray(); if(kRadix[i].length>maxlen) { maxlen=kRadix[i].length; } } int[] resArr =new int[maxlen]; for(int i=0;i<len;i++) { //不进制加法 for(int j=0;j<maxlen;j++) { if(j>=kRadix[i].length) resArr[j]+=0; else resArr[j]+=(kRadix[i][j]-'0'); } } int res=0; for(int i=0;i<maxlen;i++) { res += (resArr[i]%k)*(int)(Math.pow(k, i)); } System.out.println(res); } }
学习笔记总目录: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录
这篇关于蓝桥云课《算法很美》1.8 1.9出现k次与出现1次的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南