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

免费奖励代码网站怎样用html制作网站

免费奖励代码网站,怎样用html制作网站,建旅游网站的意义,门户网站作用目录 题目 思路 代码 暴力解法 分方向法 二分法 题目 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 …

目录

题目

思路

代码

暴力解法

分方向法

二分法


题目

整数数组 nums 按升序排列,数组中的值 互不相同 。

在传递给函数之前,nums 在预先未知的某个下标 k0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。

给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。

你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

输入:nums = [4,5,6,7,0,1,2], target = 0
输出:4

示例 2:

输入:nums = [4,5,6,7,0,1,2], target = 3
输出:-1

示例 3:

输入:nums = [1], target = 0
输出:-1

提示:

  • 1 <= nums.length <= 5000
  • -104 <= nums[i] <= 104
  • nums 中的每个值都 独一无二
  • 题目数据保证 nums 在预先未知的某个下标上进行了旋转
  • -104 <= target <= 104

思路

不考虑要求时间复杂度为 O(log n) 的算法的话

  • 可以暴力解法,直接从开始往后遍历。
  • 也可以先比较nums[ 0 ],判断是否与target相等,相等就直接返回0,如果大于target,则从后往前遍历,否则从前往后遍历。

考虑时间复杂度可以利用二分法查找。

代码

暴力解法

int search(int* nums, int numsSize, int target)
{int i;for(i =0; i < numsSize; i++ ){if(nums[i]== target){return i;}}return -1;
}

 

 我只不过不 李姐 理解为什么暴力解法的数据不算差。 

分方向法

int search(int* nums, int numsSize, int target)
{if(nums[0]<target){int i;for(i=0;i<numsSize&&target>nums[i];i++);if(target==nums[i]&&i<numsSize){return i;}}else if(nums[0]>target){int i;for( i=numsSize-1;i>=0&&target<nums[i];i--);if(target==nums[i]&&i>=0){return i;}        }else return 0;return -1; 
}

 

 

二分法

#include<stdio.h>
#include<stdlib.h>int dichsearch(int nums[],int low,int high,int target);
int search(int* nums, int numsSize, int target);int main()
{int nums[7]={4,5,6,7,0,1,2};printf("%d",search(nums,7,0));
}int search(int* nums, int numsSize, int target)
{int t;for(t=0;t<numsSize-1&&nums[t]<nums[t+1];t++);if(nums[0]<target){return dichsearch(nums,0,t,target);}else if(nums[0]>target){return dichsearch(nums,t+1,numsSize-1,target);}else return 0;
}int dichsearch(int nums[],int low,int high,int target)
{while(low<=high){int mid=(low+high)/2;if(nums[mid]<target)low=mid+1;else if(nums[mid]>target)high=mid-1;else return mid;}return -1;
}

 

 

http://www.yayakq.cn/news/119300/

相关文章:

  • wordpress怎么加快网站打开速度怎么在建设银行网站挂号
  • 免费x网站域名广东省公路建设公司网站
  • 宜兴建设局 审图中心 网站域名空间有了怎么做网站
  • 云服务器和网站备案汉口网站建设公司
  • 网站百度收录要多久广州安全教育平台入口登录
  • 实体店做网站有用吗网络舆情处置公司
  • 沈阳建网站企业阿里巴巴外贸平台一年多少钱
  • 焦作 做 网站wordpress 为静态
  • 安徽网站开发项目海南论坛网站建设
  • 河源建设用地竞拍网站建筑网课平台哪个好
  • jsp网站seo优化做网站有什么要求吗
  • 一个网站多个子域名优化上海做网站公司
  • 网站 建设 步骤是全屋定制十大名牌2021
  • 外贸订单的网站福建省华荣建设集团有限公司网站
  • 北京免费建站网络营销克州建设工程信息网
  • 网站开发税收分类wordpress分类文章置顶
  • 免费php企业网站管理系统网站整合营销等服务
  • 做淘宝的网站的多少钱北京好的设计公司
  • 苏州婚庆公司网站建设案例做美食介绍的网站
  • 遵化网站建设百姓网如何创建位置
  • 网站建设需要会什么软件中国企业500强2021名单
  • 北京国互网网站建设电话免费注册域名网站知乎
  • 工程建设监理网站步骤的近义词
  • 西安互联网品牌搭建搜索引擎优化时营销关键词
  • 沈阳网站建设专家做网站work什
  • 自己做视频网站可以吗玉溪企业网站建设公司
  • 电脑上制作ppt的步骤绍兴seo网站优化
  • 电子商务网站建设收获wordpress前台登陆界面
  • 抄袭别人网站的前端代码合法吗便宜的网站建设
  • 哪种源码做视频网站好用企业网站色彩搭配