35. Search Insert Position
时间:2019-03-12
本文章向大家介绍35. Search Insert Position,主要包括35. Search Insert Position使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这应该是比较简单的一道题了,代码如下
int searchInsert(int* nums, int numsSize, int target)
{
int i = 0;
if(numsSize <= 0)
{
return 0;
}
for(;i < numsSize;i ++)
{
if(nums[i] == target)
{
return i;
}
if(i == numsSize - 1)
{
if(nums[i] < target)
{
return numsSize;
}
}
if(nums[i] < target && nums[i+1] > target)
{
return i + 1;
}
}
return 0;
}
因为这个题目是查找一个有序数组中元素的位置,考虑可以使用二分法。修改代码后再次提交
int searchInsert(int* nums, int numsSize, int target)
{
int low = 0;
int high = numsSize - 1;
if(numsSize < 0)
{
return 0;
}
while(low <= high)
{
int middle = (low + high) / 2;
if(target == nums[middle])
{
return middle;
}
else if(target < nums[middle])
{
high = middle - 1;
}
else if(target > nums[middle])
{
low = middle + 1;
}
}
return low;
}
注意以上实现方式有一个好处,就是当循环结束时,如果没有找到目标元素,那么low一定停在恰好比目标大的index上,high一定停在恰好比目标小的index上。二分查找是一个非常经典的方法,不过一般在面试中很少直接考二分查找,会考一些变体。
参考资料
1 https://www.cnblogs.com/ccsccs/articles/4215628.html
2 《C语言大学教程(第八版)》
- 全球电脑手机无一幸免,英特尔CPU“漏洞事件”到底多严重?
- 评估Keras深度学习模型的性能
- Python机器学习的练习二:多元线性回归
- 熔断器 Hystrix 源码解析 —— 命令合并执行
- Python机器学习的练习一:简单线性回归
- Dubbo源码解析 —— zookeeper连接
- 浣熊检测器实例, 如何用TensorFlow的Object Detector API来训练你的物体检测器
- 用Keras进行深度学习模式的正则化方法:Dropout
- 用深度学习硬件的闲置时间,来挖比特币
- 深度学习:如何理解tensorflow文本蕴含的原理
- 重磅!腾讯与科大讯飞技术共创,Google ProtoBuf进入TARS家族!
- 深度学习与R语言
- 在Keras中展示深度学习模式的训练历史记录
- 分析漏洞利用工具包 Archie和Astrum工具包
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法