有一个排好序的数列,数列中只有一个数只出现1次,其余每个数均出现了两次,设计出一个算法,找出那个只出现了一次的数
public QiuDanShu(){
}
public void qiujie(int a[] , int b, int c){
int mid = (b + c)/2;
if(c-b == 0) {
System.out.println("位置在:" + b);
System.out.println("单数为:" + a[c]);
return;
}
if(a[mid] != a[mid+1] && a[mid] != a[mid -1] ) {
System.out.println("位置在:" + mid);
System.out.println("单数为:" + a[mid]);
return;
}
else if(a[mid] == a[mid -1]){
if((c - mid - 1)%2 == 0 ) {
qiujie(a , mid+1, c);
}
else {
qiujie(a , b, mid-2);
}
}
else
{
if((mid-1-b)%2 == 0 ) {
qiujie(a , b, mid-1);
}
else {
qiujie(a , mid +2 , c);
}
}
}
}
public class TestDan {
// TODO Auto-generated method stub
int a1[] = new int []{9,9,0};
int c = a1 .length;
QiuDanShu test1 = new QiuDanShu();
test1.qiujie(a1, 0, c-1);
有一个排好序的数列,数列中只有一个数只出现1次,其余每个数均出现了两次,设计出一个算法,找出那个只出现了一次的数相关推荐
- 现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数...
现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数. 方法1:Hash链表 方法2:使用两个变量A和B,其中A存储某个数组中的数,B用来计数.开始时将B初始化为0 ...
- /*已知一个排好序的数组,按数组原排序方式插入一个数据*/
/*已知一个排好序的数组,按数组原排序方式插入一个数据*/std::vector<int>shuzu = {1,2,3,4,5,7,8,9};int x = 0, caru = 6;std ...
- C语言-数组和指针-11(已有一个排号序的数组,要求输入一个数后,按原来的排序规律将它插入数组中)
题目: 已有一个排号序的数组,要求输入一个数后,按原来的排序规律将它插入数组中 源代码: #include <stdio.h> #define ROW 7 int main(){int a ...
- 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组(GO,PHP)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. 注意:答案中不可以包含重复的三 ...
- 在已经排好序的线性表中插入一个数,还是升序
在已经排好序的线性表中插入一个数,还是升序 #include<stdio.h> #define Maxsize 100 typedef struct s {int elem[Maxsize ...
- Java黑皮书课后题第6章:**6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p≤31的所有梅森素数,然后显示如下结果
6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数.编写程序,找出p≤31的所有梅森素数,然后显示如下结果 题目 题目描述 破题 代码 题目 题目 ...
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
package demo;import java.util.Arrays;/** 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.*/ //num ...
- 【排序】 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。(java)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. 注意:答案中不可以包含重复的三 ...
- 为什么处理一个排好序的数组比未排序的数组要快?
这是stack overflow上一个非常火热的问题: 为什么对数组排序能提高执行效率?先看下面的代码,执行分为: 生成随机数放入数组 对数组进行排序 对数组中的数字进行累加 publicclassM ...
- 打乱一个排好序的列表(Python)
目录 题目描述 输出描述 代码 代码走读 传送门 测试用例 题目描述 随机生成一个长度10的整型列表,元素随机分布在1--100内.按从小到大的顺序排序列表并打印,然后输出顺序打乱后的列表. 输出描述 ...
最新文章
- 面试官问我什么是扩展自适应机制
- 后台ajax调用中字符串到jquery中的json对象和数组对象转换问题
- Linux下使用service启动jar包.md
- JavaWeb——多个Filter代码的执行顺序
- 【CV】目标检测的常用数据处理方法!
- c++ udp多线程 例子_[内附完整源码和文档] 基于udp实现tcp功能进行大文件传输
- ARM汇编指令格式及规则
- import java.io6_JavaIO(六) 转换流
- 【IT】jQuery AJAX Call to MVC Controller with Parameters
- python如何定义类_Python class定义类,Python类的定义(入门必读)
- php记录上次观看记录,PHP Cookei记录用户历史浏览信息的代码
- Graph Theory 离散数学第五章
- 【嵌入式Linux应用开发】移植LVGL到Linux开发板
- 回顾:HTTP/HTTPS/对称加密/非对称加密/session/cookie/token
- SQlException 对象名无效
- Shell内建命令之echo、local、logout
- CUDA中的NVCC编译器详解
- MySQL 数据库备份和还原数据库 mysqldump、source
- Python——星期的字典1——7
- Powerbi 通过On-premises data gateway 连接本地多维数据库
热门文章
- 统信UOS arm平台用户,是时候告别网页版微信​了!
- 计算机存储密码的方式,关于数据加密存储的四种途径【图解】
- 2022年深圳市疫情补贴政策及怎么申请,补贴5000万
- 阿里云APP软件著作权在线登记步骤?
- V4L2文档翻译(十二)
- oracle 用户无限期,oracle永久密码和登录次数无限制设置
- 鸿蒙系统走进大学课堂,华为鸿蒙系统HarmonyOS课程走进高校,武汉大学等高校将授课...
- 桂林阳朔游10月7日(续上)
- 【5G核心网】 Handover procedures Execution phase切换流程执行阶段
- 图的创建(邻接矩阵和邻接表)