大数组,找某数字的左,右边界
2,代码
/*************************************************************************> File Name: getpos.cpp> Author:18510665908@163.com > Created Time: 2018年04月13日 星期五 19时17分30秒************************************************************************/
#include<iostream>
using namespace std;
int binary_search(int data[],int begin,int end,int num)
{int left = begin;int right = end;int mid = -1;int pos = -1;while(left<=right){mid = (left+right)/2;if (data[mid]<num){left = mid+1;}else if (data[mid]>num){right = mid-1;}else if (data[mid]==num){break;}}if (left<=right)pos = mid;return pos;
}
int getPos(int data[],int len,int num)
{int left=0,right=len-1;int curpos=-1,prepos=-1;curpos=binary_search(data,left,right,num);while(curpos!=-1){prepos=curpos;
#if 0//计算后边位置left=curpos+1;right=right;
#elseleft=left;right=curpos-1;
#endifcurpos=binary_search(data,left,right,num);}return prepos;
}
int main(int argc,char *argv[])
{int data[]={0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,7,7,7,7,7,7};cout<<endl<<getPos(data,50,1)<<endl;return 0;
}
大数组查左连界
大数组,找某数字的左,右边界相关推荐
- 剑指Offer53-Ⅰ—在排序数组中查找数字
剑指Offer53-Ⅰ 题意 统计一个数字在排序数组中出现的次数. 解法1-暴力循环 class Solution { public:int search(vector<int>& ...
- 【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I
[LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 文章目录 [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 一.二分法 总结 一.二分法 ...
- Java第三大的数,Java通过排序找出数组第三大数字
Java通过排序找出数组第三大数字 1 方式一:对数组进行排序并返回第三大数字 通过对数组进行排序并返回第三大数字,我们可以找到java中的第三大数字.让我们看看完整的示例,以找到java数组中的第三 ...
- java如何找重复数字_Java如何找出数组中重复的数字
题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...
- 剑指offer答案 c语言,剑指offer之C语言不修改数组找出重复的数字
1 题目 不修改数组找出重复的数字 在一个长度为N+1的数组里面的所有数字都在范围1~N范围内,所以数组至少有一个数字是重复的,请找出重复数字,但是不能修改输入的数组. 2 思路 思路1: 我们开 ...
- 单片机8x8点阵让数字0从右到左依次显示循环
用的单片机是普中的开发板,8x8点阵用的是74hc595进行段选,P0口位选 74hc595资料点击打开链接 8x8点阵用的是共阴极(左边的) 这次我要实现的是让数字0从右到左依次显示 #includ ...
- 《剑指offer》--二维数组中的查找、从头到尾打印链表、重建二叉树、旋转数组的最小数字
一.二维数值中的查找: 1.题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数 ...
- es6 数组找最大值_自学Java笔记_day04_第四章 数组
4.1 数组的相关概念和名词(了解) 1.数组(array): 一组具有相同数据类型的数据的按照一定顺序排列的集合. 把有限的几个相同类型的变量使用一个名称来进行统一管理. 2.数组名: ...
- 算法练习day20——190411(重建二叉树、斐波那契数列、跳台阶、矩形覆盖、变态跳台阶、旋转数组的最小数字、矩阵中的路径)
1.重建二叉树 根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. preorder = [3,9,20,15,7].inorder = [9 ...
- 《剑指offer》-- 和为S的连续整数序列、和为S的两个数字、左旋转字符串、翻转单词顺序列
一.和为S的连续整数序列: 1.题目: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100 ...
最新文章
- pandas改变dataframe的列的顺序、改变数据列的排列次序
- BZOJ1575: [Usaco2009 Jan]气象牛Baric
- Redis整合Spring Data Redis 开发key和value乱码
- hdu 2036 计算多边形面积
- fastJson性能测试
- python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法
- 黑客是否可以攻击被拔掉网线的电脑?
- 台式电脑打不开计算机c盘,电脑c盘打不开进不了系统怎么办
- matlab exprnd函数,Matlab 用 exprnd 函数生成符合指数分布的随机数
- linux系统有界面么,linux系统界面详情介绍
- 【Spark】Spark安装详解
- HTML让文字在图片上显示
- 回溯算法-数独(计算器)
- TPshop商城环境搭建(一)
- yield 函数的理解
- code force 449 div2 C. Nephren gives a riddle
- mysql 索引加锁分析
- 你绝对不能错过的7款开源硬件架构
- 基于Android的人脸识别
- python断网重联_Python实现WiFi断线自动重连的方法详解
热门文章
- C#JSON格式数据的转换
- 【中级篇】Linux下搭建MySQL数据库系统
- 娱乐篇第十期:互联网的事情you意思(十)
- 【原】oracle11g 客户端安装检测失败问题
- linux下编译yacc命令,Lex/Yacc的学习——《编译原理及实践》附录B tiny编译器源码在linux下编译实现...
- taro 如何使用dom_taro创建的小程序项目怎么引用ant design mobile UI库
- jaxb xml 生成 java_java-如何使用JAXB定制XML导出
- Pentium的保护工作方式
- 博弈论——Nim游戏
- 多项logistic回归系数解释_逻辑回归logistic(含python代码)