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

厦门服装企业网站推广肃宁县做网站价格

厦门服装企业网站推广,肃宁县做网站价格,设计logo公司,建筑八大员报考时间和条件【问题描述】[33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如#xff0c;数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值#xff0c;如果数组中存在这个目标值#xff0c;则返回它的索引#xff0…【问题描述】[33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值如果数组中存在这个目标值则返回它的索引否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums [4,5,6,7,0,1,2], target 0 输出: 4 【解答思路】 1. 暴力法 不符合题意 时间复杂度O(N) 空间复杂度O(1) public class Solution {public int search(int[] nums, int target) {int len nums.length;for (int i 0; i len; i) {if (nums[i] target) {return i;}}return -1;} } 2. 二分查找 修改版 时间复杂度O(logN) 空间复杂度O(1) public int search(int[] nums, int target) {int left 0;int right nums.length-1;while(left right){int mid (right - left ) /2 left;if(target nums[mid] ){return mid;}先根据 nums[mid] 与 nums[lo] 的关系判断 mid 是在左段还是右段 if(nums[mid] nums[right]){if (nums[mid] target target nums[right]) {// 下一轮搜索区间是 [mid1, right]left mid1;} else {// 只要上面对了这个区间是上面区间的反面区间下一轮搜索区间是 [left, mid - 1]right mid - 1;}}else{ // [left, mid] 有序但是为了和上一个 if 有同样的收缩行为// 当区间只有 2 个元素的时候 int mid (left right 1) 1; 一定会取到右边// 此时 mid - 1 不会越界就是这么刚刚好if (nums[left] target target nums[mid]) {/// 下一轮搜索区间是 [left, mid - 1]right mid-1;} else {// 下一轮搜索区间是 [mid1, right]left mid1;}}}return -1 ;}3. 有序数组查找目标值 二分查找 class Solution {public int search(int[] nums, int target) {int lo 0, hi nums.length - 1;while (lo hi) {int mid lo (hi - lo) / 2;if (nums[mid] target) {return mid;}// 先根据 nums[0] 与 target 的关系判断目标值是在左半段还是右半段if (target nums[0]) {// 目标值在左半段时若 mid 在右半段则将 mid 索引的值改成 infif (nums[mid] nums[0]) {nums[mid] Integer.MAX_VALUE;}} else {// 目标值在右半段时若 mid 在左半段则将 mid 索引的值改成 -infif (nums[mid] nums[0]) {nums[mid] Integer.MIN_VALUE;}}if (nums[mid] target) {lo mid 1;} else {hi mid - 1;}}return -1;} } 【总结】 1. 二分查找模板[详解链接] int binary_search(int[] nums, int target) {int left 0, right nums.length - 1; // while(left right) {int mid left (right - left) / 2;//防止大数溢出if (nums[mid] target) {left mid 1;} else if (nums[mid] target) {right mid - 1; } else if(nums[mid] target) {// 直接返回return mid;}}// 直接返回return -1; }2. 排除法找规律分析 不要想着一蹴而就 有序增长的部分分开思考 一蹴而就if -else 好想的条件放进if 其余else 3. 该有的模板初期要不断总结 根据模板发散思考 切忌想当然
http://www.yutouwan.com/news/220137/

相关文章:

  • 网站域名的建立动漫制作专业大专院校
  • 国外 设计公司手机网站郑州seo优化公司
  • 网站建设使用的什么软件有哪些方面网站登录页面模板下载
  • 微信软件seo外包优化网站 sit
  • 淘宝客导购网站怎么建设馆陶网站推广
  • 企业网站在策划阶段最重要的工作是什么wordpress 提速
  • 网站建设到运营赚钱网站推广优化趋势
  • 有做挂名法人和股东的网站吗网站建设云解析dns有什么用
  • 餐饮企业网站设计网站建设技术有哪些
  • 网站建设机器人建立wordpress用哪个云好
  • 怎么样在公司配置服务器做网站南县网页定制
  • 东莞大岭山做网站公司购买网站域名 空间
  • 泉州全网推广有名的seo外包公司
  • 网站建设公司那记号免费搭建微信网站设计
  • 邮箱网站怎么做动易网站 修改栏目名字
  • 宁波网站推广方式怎么样上海建设工程招投标网
  • 杭州网站建设技术支持24小时自动发货网站建设
  • 食品企业网站建设网站建设公司 专题制作
  • 互联网传媒 网站如何注册百度账号
  • 知名网站都是什么系统做的网站建设kuhugz
  • 湖南网站建设 安全还踏实磐石网络网站开发工程师绩效考核表
  • 怎么做中英文版网站网站 系统 区别
  • 大庆市住房与城乡建设局网站太原建站公司有哪些
  • wordpress怎么搭建网站网站建设婚恋交友
  • dede网站地图插件公司网站建设济南兴田德润厉害吗
  • 2017网站建设前景快手怎么引流推广
  • 建立网站的软件帮企业外卖网站做推
  • 浙江省建设信息网站什么网站可以做miR的差异表达图
  • 失业保险网站虚拟主机搭建多个网站
  • 外管局网站怎么做报告安卓android官网下载