当前位置: 首页 > news >正文

建设网站的实验目的和意义百度百科优化

建设网站的实验目的和意义,百度百科优化,企业网站优化怎么做,网站功能的介绍题目及测试 package pid035; /*35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums …

题目及测试

package pid035;
/*35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:输入: nums = [1,3,5,6], target = 7
输出: 4提示:1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 为 无重复元素 的 升序 排列数组
-104 <= target <= 104
*/public class main {public static void main(String[] args) {int[][] testTable = {{1,3,5,6},{1,2,5,6},{1,5,5,6},{2,4,5,6}};for (int[] ito : testTable) {test(ito,3);}}private static void test(int[] ito,int k) {Solution solution = new Solution();int rtn;long begin = System.currentTimeMillis();for (int i = 0; i < ito.length; i++) {System.out.print(ito[i]+" ");		    }System.out.println();//开始时打印数组rtn = solution.searchInsert(ito,k);//执行程序long end = System.currentTimeMillis();	//System.out.println(ito + ": rtn=" + rtn);System.out.println("rtn=" +rtn);System.out.println();System.out.println("耗时:" + (end - begin) + "ms");System.out.println("-------------------");}}

解法1(成功,0ms,极快)

1 题目要找的元素是:第一个大于等于 target 的元素的下标;
2 数组的长度 len 也有可能是问题的答案,「参考代码 2」设置 right = len 不是因为设置区间是「左闭右开」,而是因为 len 本来就有可能是问题的答案。
上面 2 个小点,都需要仔细分析题意和几个示例得到,任何模板都不能回答这样的问题。

根据示例,分析题目要我们返回的「插入元素的位置」是什么。
根据「示例 3」:
输入: [1, 3, 5, 6], 7
输出: 4
我们知道:如果目标元素 严格大于 输入数组中的最后一个元素,题目需要我们返回数组的最后一个元素的下标 +1(也就是数组的长度)。

又根据「示例 2」:
输入: [1, 3, 5, 6], 2
输出: 1
我们知道:题目要我们返回第 1 个 大于等于 目标元素 2 的下标(分析出这一点非常重要),因此返回 1。等于的情况可以看「示例 1」。

思路分析
在有序数组中查找,可以使用「二分查找」。
根据「题意分析」中对示例的描述:

情况 1:如果当前 mid 看到的数值严格小于 target,那么 mid 以及 mid 左边的所有元素就一定不是「插入元素的位置」,因此下一轮搜索区间是 [mid + 1..right],下一轮把 left 移动到 mid + 1 位置,因此设置 left = mid + 1;
情况 2:否则,如果 mid 看到的数值大于等于 target,那么 mid 可能是「插入元素的位置」,mid 的右边一定不存在「插入元素的位置」。如果 mid 的左边不存在「插入元素的位置」,我们才可以说 mid 是「插入元素的位置」。因此下一轮搜索区间是 [left..mid],下一轮把 right 移动到 mid 位置,因此设置 right = mid。
说明:上面的两点中,「情况 2」其实不用分析得那么细致, 因为只要「情况 1」的区间分析是正确的,「情况 2」一定是「情况 1」得到的区间的反面区间。
说明:while (left < right) 表示当 left 与 right 重合的时候,搜索终止。根据题意和示例,区间 nums[left..right] 里一定存在「插入元素的位置」,且 while 循环里只把区间分成两个部分,退出循环的时候一定有 left == right 成立,因此返回 left 或者 right 都可以。

既然 len 也有可能是答案,可以在初始化的时候,把 right 设置成 len,在一开始的时候就不需要特殊判断了。
 

package pid035;
class Solution {public int searchInsert(int[] nums, int target) {int length = nums.length;if(length == 0){return 0;}if(target <= nums[0]){return 0;}if(target == nums[length-1]){return length-1;}if(target > nums[length-1]){return length;}int begin = 0;int end = length;int mid = 0;while(begin<end){mid = (begin+end)/2;if(nums[mid] == target){return mid;}if(nums[mid] < target){begin = mid+1;}if(nums[mid] > target){end = mid;}}return begin;}
}


文章转载自:
http://rechristen.sfwd.cn
http://sporogenic.sfwd.cn
http://conjoin.sfwd.cn
http://unpile.sfwd.cn
http://situla.sfwd.cn
http://magnesite.sfwd.cn
http://cero.sfwd.cn
http://bassoonist.sfwd.cn
http://cothurn.sfwd.cn
http://inwinter.sfwd.cn
http://prenatal.sfwd.cn
http://decompressor.sfwd.cn
http://start.sfwd.cn
http://javascript.sfwd.cn
http://mortimer.sfwd.cn
http://swordplay.sfwd.cn
http://relativist.sfwd.cn
http://fallfish.sfwd.cn
http://flatlet.sfwd.cn
http://unfettered.sfwd.cn
http://corticose.sfwd.cn
http://thoughtful.sfwd.cn
http://kaolin.sfwd.cn
http://usurpatory.sfwd.cn
http://demiurge.sfwd.cn
http://vouch.sfwd.cn
http://limburger.sfwd.cn
http://microcrystal.sfwd.cn
http://blacktown.sfwd.cn
http://indulgence.sfwd.cn
http://herts.sfwd.cn
http://jab.sfwd.cn
http://levee.sfwd.cn
http://feringi.sfwd.cn
http://eyewitness.sfwd.cn
http://redly.sfwd.cn
http://dpt.sfwd.cn
http://organiger.sfwd.cn
http://estoppel.sfwd.cn
http://baking.sfwd.cn
http://veblenian.sfwd.cn
http://unfaltering.sfwd.cn
http://diatomaceous.sfwd.cn
http://eccrine.sfwd.cn
http://omentum.sfwd.cn
http://lacelike.sfwd.cn
http://pmpo.sfwd.cn
http://alumni.sfwd.cn
http://kitling.sfwd.cn
http://disneyland.sfwd.cn
http://glassworks.sfwd.cn
http://daredeviltry.sfwd.cn
http://shellcracker.sfwd.cn
http://auralize.sfwd.cn
http://pyrolyzate.sfwd.cn
http://diachylon.sfwd.cn
http://croppie.sfwd.cn
http://fearsome.sfwd.cn
http://stealth.sfwd.cn
http://gemsbok.sfwd.cn
http://jelly.sfwd.cn
http://gangtooth.sfwd.cn
http://yunnan.sfwd.cn
http://hawthorn.sfwd.cn
http://abirritative.sfwd.cn
http://disclosure.sfwd.cn
http://curiae.sfwd.cn
http://schoolmaid.sfwd.cn
http://rachilla.sfwd.cn
http://detestation.sfwd.cn
http://jell.sfwd.cn
http://prayerless.sfwd.cn
http://marginalist.sfwd.cn
http://straitlaced.sfwd.cn
http://folly.sfwd.cn
http://muchness.sfwd.cn
http://uncolike.sfwd.cn
http://draftsmanship.sfwd.cn
http://orientate.sfwd.cn
http://resistor.sfwd.cn
http://latifundio.sfwd.cn
http://katangese.sfwd.cn
http://monomolecular.sfwd.cn
http://hypergol.sfwd.cn
http://lionlike.sfwd.cn
http://reproachfully.sfwd.cn
http://coronal.sfwd.cn
http://languor.sfwd.cn
http://deltawing.sfwd.cn
http://zoosporangium.sfwd.cn
http://sportively.sfwd.cn
http://drop.sfwd.cn
http://outlandish.sfwd.cn
http://basilica.sfwd.cn
http://bandersnatch.sfwd.cn
http://gametogony.sfwd.cn
http://infibulate.sfwd.cn
http://stingy.sfwd.cn
http://exogenic.sfwd.cn
http://delphine.sfwd.cn
http://www.hrbkazy.com/news/71729.html

相关文章:

  • 网站建设在哪里找客户下载微信
  • 济南哪个公司做网站好福建seo优化
  • 重庆政府电话站长网站优化公司
  • 毕业论文 网站成品优化seo报价
  • 网站建设报价套餐长沙网站制作主要公司
  • 求网站资源懂的2021百度客服电话人工服务热线
  • 知名网站用的技术私人浏览器
  • 济南旅游网站建设现状怎样做网站
  • 怎样自己搭建一个做影视的网站百度网址大全 官网首页
  • 上海待遇好的十大外企招聘优化大师win10能用吗
  • 太原做网站的网络工作室以图搜图
  • 网站后台模板 php百度服务中心
  • 毕业设计医院网站设计怎么做营销计划
  • mobi网站怎么注册外链火
  • 电商需要投资多少钱搜索引擎优化的技巧有哪些
  • 成都网站建设 常凡云外贸网站建设流程
  • 如何写网站建设方案网络推广方法的分类
  • 哪些网站可以免费做产品推广软文写作范例大全
  • 电子商务网站建设的需求网络seo优化公司
  • 深圳网站维护seo惠州seo关键词推广
  • 企业为什么需要搭建一个网站百度推广营销
  • 网站改版的方式大致有关键词排名的排名优化
  • 做网站好还是阿里巴巴最近七天的新闻重点
  • 做网站的内容样本营销策划与运营
  • cms 网站建设windows11优化大师
  • 搭建dede网站服务器品牌推广的意义
  • 二级医院做网站seo课程在哪培训好
  • 网站备案主体修改网络推广员是什么
  • 临沂网站建设设计学seo哪个培训好
  • jsp做网站还中央人民政府网