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

什么是网络营销的方法/百度seo规则

什么是网络营销的方法,百度seo规则,做外贸是什么网站,wordpress 微博登录注册本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

Given a sorted (in ascending order) integer array nums of n elements and a target value, write a function to search target in nums. If target exists, then return its index, otherwise return -1 .

Example 1:

Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4

Example 2:

Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1

Note:

  • You may assume that all elements in nums are unique.
  • n will be in the range [1, 10000] .
  • The value of each element in nums will be in the range [-9999, 9999] .

题意:给定一个 n 个元素的升序整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target ,如果目标值存在返回下标,否则返回 -1


解法1:使用STL

顺序查找的方法就不说了,这里使用STL的 lower_bound 函数,代码如下:

//C++ version
class Solution {
public:int search(vector<int>& nums, int target) {auto it = lower_bound(nums.begin(), nums.end(), target);if (it == nums.end()) return -1;return *it == target ? it - nums.begin() : -1;}
};
//执行用时:76 ms, 在所有 C++ 提交中击败了93.84% 的用户
//内存消耗:25.2 MB, 在所有 C++ 提交中击败了10.49% 的用户

解法2 手写二分

二分题目的关键性在于,把握题目的「单调性」,想清楚二分的是哪个边界,而不是局限在用什么模板、大于或小于上面。

//C++ version
//最普通的二分查找
class Solution {
public:int search(vector<int>& nums, int target) {int lo = 0, hi = nums.size() - 1;while (lo <= hi) {int mid = lo + ((hi - lo) >> 1);if (nums[mid] == target) return mid;else if (nums[mid] > target) hi = mid - 1;else lo = mid + 1;}return -1;}
};
//执行用时:88 ms, 在所有 C++ 提交中击败了62.16% 的用户
//内存消耗:25.1 MB, 在所有 C++ 提交中击败了55.62% 的用户

修改一下范围,以左闭右开区间 [lo, hi) 进行搜索:

//C++ version
//最普通的二分查找
class Solution {
public:int search(vector<int>& nums, int target) {int lo = 0, hi = nums.size();while (lo < hi) {int mid = lo + ((hi - lo) >> 1);if (nums[mid] == target) return mid;else if (nums[mid] > target) hi = mid;else lo = mid + 1;}return -1;}
};
//执行用时:72 ms, 在所有 C++ 提交中击败了95.90% 的用户
//内存消耗:25.2 MB, 在所有 C++ 提交中击败了20.34% 的用户

此外,还可以二分升序数组的下界,即查找第一个大于等于 target 的元素的位置:

//C++ version
//二分下界
class Solution {
public:int search(vector<int>& nums, int target) {int lo = 0, hi = nums.size();while (lo < hi) {int mid = lo + hi >> 1;if (nums[mid] >= target) hi = mid; else lo = mid + 1;  }return (lo == nums.size() || nums[lo] != target) ? -1 : lo;}
}; 
//执行用时:32 ms, 在所有 C++ 提交中击败了72.07% 的用户
//内存消耗:26.9 MB, 在所有 C++ 提交中击败了33.23% 的用户

由于不用返回要插入的位置,二分的解的范围可以缩小到 [0, nums.size() - 1] ,也就不用判断 lo 是否等于 nums.size()(即插入到数组尾部):

//C++ version
//二分下界
class Solution {
public:int search(vector<int>& nums, int target) {int lo = 0, hi = nums.size() - 1;while (lo < hi) {int mid = lo + hi >> 1;if (nums[mid] >= target) hi = mid; else lo = mid + 1;  }return nums[lo] != target ? -1 : lo;}
};
//执行用时:40 ms, 在所有 C++ 提交中击败了29.53% 的用户
//内存消耗:27 MB, 在所有 C++ 提交中击败了5.82% 的用户

还可以二分升序数组的上界,即查找最后一个小于等于 target 的元素的位置:

//C++ version
//二分上界
class Solution {
public:int search(vector<int>& nums, int target) {int lo = 0, hi = nums.size() - 1; //题解范围到[0,n),但是插入范围为[0,n],插入时特判结果下标为0的位置while (lo < hi) {int mid = lo + hi + 1 >> 1; //注意+1if (nums[mid] <= target) lo = mid; //找到最后一个<=target的元素位置else hi = mid - 1;}return nums[lo] == target ? lo : -1;}
};
//执行用时:32 ms, 在所有 C++ 提交中击败了72.07% 的用户
//内存消耗:26.8 MB, 在所有 C++ 提交中击败了84.80% 的用户

二分的写法多种多样,在升序数组中还可以二分查找第一个大于 target 的元素的位置、最后一个小于 target 的元素的位置。

http://www.lbrq.cn/news/960733.html

相关文章:

  • 网站seo做点提升流量/公司运营策划营销
  • 如何建设企业网站/网页查询
  • 阿里云个人不能开网站/南昌seo实用技巧
  • 彩票推广网站如何做/今日热搜榜官网
  • 大连企业做网站/seo网络营销招聘
  • wordpress 常数函数/站长工具seo查询5g5g
  • 做讲课ppt的网站/推广网站怎么制作
  • 网站推广引流软件/网站快照优化公司
  • wordpress 站外链接/百度免费推广
  • 嘉兴市建设官方网站/广州网页推广公司
  • 网站前端是做啥的/手机网站排名优化软件
  • 兰州网站优化哪家好/网站流量来源
  • o2o网站咋建设/网站推广的营销策划方案
  • 制定网站建设方案/seo 工具
  • 网站优化工作室/网站宣传文案
  • 官方门户网站j建设的必要性/广告公司名字
  • 网站建立供应商/网络营销推广的方法
  • pos机网站模板/太原做网络推广的公司
  • 富士康/百度刷排名seo
  • 求国外做任务赚钱的网站/网络营销公司名字
  • 如何安装wordpress的插件安装/郑州谷歌优化外包
  • 有人在相亲网站骗人做传销/seo客服
  • 网页制作三剑客是指/seo网络排名优化哪家好
  • 特色个人网站/百度一下官方网址
  • 长沙移动网站建设哪家好/百度网络营销app
  • 网站建设主要用什么软件/如何注册百度账号
  • 怎样建设网站客服服务/上海网站关键词排名
  • 重庆奉节网站建设/网上推广用什么平台推广最好
  • 网站建设制作软件/网站推广的方法和途径
  • 做跨境电商被骗了三万/seo顾问是什么职业
  • Django母婴商城项目实践(六)- Models模型之ORM操作
  • CMake指令:常见内置命令行工具( CMake -E )
  • vscode 一直连不上远程,网络是通的,ssh 也能直接登录远程
  • Java Web项目Dump文件分析指南
  • 工业数据集成中间件工具OPC Router详细介绍
  • HTML表格基础