34. Search for a Range
一句话思路:新建数组存储位置,输出数组
一刷报错:
- 是nums[mid],nums[start/end]和target的关系,不是mid start end和target的关系
- 右边界 start end调换后,不对
二刷改了小格式之后ac:
- 数组定义时,举例出元素的时候没有等号。return new int[] {-1, -1};
- 是start end=bound[0,1],不是target=bound[0,1]。别粗心。
总结:bound[0],是从前往后查找的,从前开始查。
bound[1],是从后往前查找的,从后开始查。
风格上:
- 数组里面的数之间要有空格。
- 每次声明一个变量 int a;
intb;
- if 后面要加空格!!
class Solution {public int[] searchRange(int[] nums, int target) {if (nums.length == 0) {return new int[]{-1, -1};}int start;int end;int mid;int []bound = new int[2];//search for the left boundstart = 0;end = nums.length - 1;while (start + 1 < end) {mid = start + (end - start) / 2;if (nums[mid] == target) {end = mid;}if (nums[mid] < target) {start = mid;}if (nums[mid] > target) {end = mid;}}//System.out.println("start1="+start);//System.out.println("end1="+end);if (nums[start] == target) {bound[0] = start;}else if (nums[end] == target) {bound[0] = end;}else {bound[0] = -1;bound[1] = -1;}//System.out.println("bound[0]="+bound[0]);//search for the right boundend = 0;start = nums.length - 1;while (end + 1 < start) {mid = end + (start - end) / 2;if (nums[mid] == target) {end = mid;}if (nums[mid] < target) {end = mid;}if (nums[mid] > target) {start = mid;}}//System.out.println("start2="+start);//System.out.println("end2="+end);if (nums[start] == target) {bound[1] = start;}else if (nums[end] == target) {bound[1] = end;}else {bound[0] = -1;bound[1] = -1;}//System.out.println("bound[1]="+bound[1]);return bound;} }
转载于:https://www.cnblogs.com/immiao0319/p/7877497.html
34. Search for a Range相关推荐
- LeetCode - 34. Search for a Range
34. Search for a Range Problem's Link -------------------------------------------------------------- ...
- LeetCode 34. Search for a Range
LeetCode 34. Search for a Range Solution1:我的答案 竟然超过了100%,啊哈哈哈哈哈 class Solution { public:vector<in ...
- [LeetCode] Search for a Range [34]
题目 Given a sorted array of integers, find the starting and ending position of a given target value. ...
- 二分法:查找区间search for a range
问题描述: 给定一个排序数组nums(nums中有重复元素)与目标值target,如果 target在nums里出现,则返回target所在区间的左右端点下标,[左端点, 右端点],如果target在 ...
- 【leetcode】Search for a Range
题目描述: Given a sorted array of integers, find the starting and ending position of a given target valu ...
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 34: ordinal not in range(128)
以上错误是我在使用pip 安装 pyvex时候出现 系统 ubuntu14.04 32位 解决办法: vim ~/.bashrc(打开用户配置文件) 在文件最后一行添加 export LC_ALL= ...
- Lintcode61 Search for a Range solution 题解
[题目描述] Given a sorted array of n integers, find the starting and ending position of a given target v ...
- 继续过中等难度.0309
. 8 String to Integer (atoi) 13.9% Medium . 151 Reverse Words in a String 15.7% Mediu ...
- Leetcode重点250题
LeetCode重点250题 这个重点题目是把LeetCode前400题进行精简.精简方法如下: 删除不常考,面试低频出现题目 删除重复代码题目(例:链表反转206题,代码在234题出现过) 删除过于 ...
最新文章
- Android Fragment 基本介绍
- 李彦宏为什么被称为AI先生,美国权威媒体给出答案
- Outlook 2010如何更改脱机缓存数据OST文件位置?
- 两张照片重叠处半透明_全面解读超焦距,让你的风景照片更锐更清晰
- html图片上下翻滚展示代码
- Linux 2440 LCD 控制器
- 阿里云RDS深度定制-XA Crash Safe
- 面试题,你如何进行产品改版的?
- 英伟达 | 深度学习GPU最新情况
- c# mysql 1062_C#中MySQL函数用DATASET 和 MySqlDataAdapter 操作数据库
- python爬股票历史价格_【Python】利用ricequant获取上证指数以及所有股票历史价格数据...
- 安装WIN10系统时“谁将会使用这台电脑”输入卡死状态的问题
- Java应用题:模拟一个简单的购房商贷月供计算器,按照以下公式计算总利息和每月还款金额,总利息=贷款金额*利率,贷款年限不同利率也不同,这里规定只有三种年限、利率,见表
- 计算机无法开机如何读u盘启动,无法开机u盘装系统教程
- python+opencv实现相似图片的搜索
- Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mong..
- 在职考研读计算机科学,能否以在职读研的形式学习在职研究生计算机科学与技术专业?...
- linux基础-- 桌面系统如何切换命令窗口
- android逆向开发工程师需要掌握的技能
- Android高德地图试用
热门文章
- python代码写好了怎么运行并画图-无所不能的python编程是怎么快速画图的呢?5分钟学会!...
- python流程控制语句-Python流程控制语句详解
- python怎么导入文件-Python模块导入详解
- python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程
- python web-2019年Python Web五大主流框架
- python打开界面是什么样的-python学习笔记(图形用户界面)
- python爬虫工程师-记录一下自己找“python爬虫工程师实习生”岗位的经历
- python升级版本命令-CentOS7 下升级Python版本
- python表白代码弹窗-python实现祝福弹窗效果
- python代码基础题-Python初学者福利 完整试题附答案 干货(收藏篇)