网站建设资金申请报告php做网站不兼容ie8

张小明 2026/1/11 5:47:37
网站建设资金申请报告,php做网站不兼容ie8,淘宝网站建设素材,天津seo公司排名题目链接#xff1a;LeetCode 34 - Find First and Last Position of Element in Sorted Array。leetcode​ 题目大意#xff1a;给定一个按非递减顺序排序的整数数组 nums#xff0c;和一个目标值 target#xff0c;要求在数组中找到 target 出现的第一个位置和最后一个位…题目链接LeetCode 34 - Find First and Last Position of Element in Sorted Array。leetcode​题目大意给定一个按非递减顺序排序的整数数组 nums和一个目标值 target要求在数组中找到 target 出现的第一个位置和最后一个位置返回 [start, end]。如果不存在返回 [-1, -1]并且算法时间复杂度必须是 O(log⁡n)O(\log n)O(logn)。leetcode​最朴素的想法先找到一个再往两边扫一开始的直觉很自然先用二分查找找到某个 mid使得 nums[mid] target。从 mid 向左扫直到遇到第一个不等于 target 的位置前一个就是 start。从 mid 向右扫直到遇到第一个不等于 target 的位置前一个就是 end。这个思路在正确性上没问题但有一个明显的问题在极端情况下比如 nums [8,8,8,8,8,8]虽然找到一个 8 用了 O(log⁡n)O(\log n)O(logn)但是向左、向右的线性扫描又回到了 O(n)O(n)O(n)。综合起来最坏复杂度是 O(n)O(n)O(n)不满足题目要求的 O(log⁡n)O(\log n)O(logn)。所以向两边线性扫是不行的必须连找左右边界这一步也用二分来做。改进方向用二分专门找边界既然数组有序而且要 O(log⁡n)O(\log n)O(logn)自然想到不仅要用二分找一个 target还要用改造过的二分去分别找最左和最右的 target。这里有两个关键的小问题找左边界时nums[mid] target 时怎么办不能直接返回因为左边可能还有 target。正确做法是记录当前 mid 是一个候选答案然后把 right 收缩到 mid - 1继续往左找。找右边界是不是对称的是的找右边界时nums[mid] target 时记录答案然后把 left 收缩到 mid 1继续往右找。所以思路变成写一个 find_start_position尽量往左压缩找到第一个等于 target 的位置。写一个 find_end_position尽量往右压缩找到最后一个等于 target 的位置。每个函数内部都是一次完整的二分整体只做了常数次二分复杂度是 2⋅log⁡n2 \cdot \log n2⋅logn在大 O 记号下仍然是 O(log⁡n)O(\log n)O(logn)完全符合要求。enjoyalgorithms1​关于2 次二分是不是超了 O(log n)从渐进复杂度的角度2⋅log⁡n2 \cdot \log n2⋅logn、3⋅log⁡n3 \cdot \log n3⋅logn 等都写作 O(log⁡n)O(\log n)O(logn)常数因子会被忽略。enjoyalgorithms​实际上很多官方题解和主流题解就是 “两次边界二分”第一次找左边界第二次找右边界这一点在面试中是完全没有问题的。最终实现两个边界二分函数下面是用 C 写的完整代码拆成三个函数find_start_position找左边界。find_end_position找右边界。searchRange主函数负责处理空数组、调用两个二分并返回结果。代码如下intfind_end_position(int*nums,intnumsSize,inttarget){intleft,right,mid,end_position;left0;rightnumsSize-1;end_position-1;while(leftright){midleft(right-left)/2;if(nums[mid]target){end_positionmid;leftmid1;}elseif(nums[mid]target){leftmid1;}else{// nums[mid] targetrightmid-1;}}returnend_position;}intfind_start_position(int*nums,intnumsSize,inttarget){intleft,right,mid,start_position;left0;rightnumsSize-1;start_position-1;while(leftright){midleft(right-left)/2;if(nums[mid]target){start_positionmid;rightmid-1;}elseif(nums[mid]target){leftmid1;}else{// nums[mid] targetrightmid-1;}}returnstart_position;}/** * Note: The returned array must be malloced, assume caller calls free(). */int*searchRange(int*nums,intnumsSize,inttarget,int*returnSize){intstart_position,end_position;int*result;result(int*)malloc(2*sizeof(int));if(!nums||!numsSize){result[0]-1;result[1]-1;*returnSize2;returnresult;}start_positionfind_start_position(nums,numsSize,target);end_positionfind_end_position(nums,numsSize,target);result[0]start_position;result[1]end_position;*returnSize2;returnresult;}这份代码在 LeetCode 上可以通过所有用例实际提交记录用例88 / 88 全部通过。运行时间0 ms击败 100% 提交。内存使用9.82 MB。leetcode​小结这道题教会了什么这道题的关键不在会不会写二分而在于能否把找到一个 target提升为找到一段 target 的边界知道 边界二分的典型写法命中 target 时不要停而是继续压缩一端能清楚解释为什么两次二分仍然是 O(log⁡n)O(\log n)O(logn)“通过自己一步步把线性往两边扫的想法改进为左右边界都用二分”是一个很典型的从直觉解到最优解的思考路径。如果想把这个模式记牢可以再去刷几道类似的找第一次 / 最后一次出现位置的题尽量统一成一套找左边界 / 右边界的模板会在面试里非常加分。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

制定网站分工任务网站的建设规划在线网页制作

CSS兼容性难题的终极解决方案:postcss-cssnext深度实践指南 【免费下载链接】postcss-cssnext 项目地址: https://gitcode.com/gh_mirrors/cs/cssnext 在现代Web开发中,CSS兼容性问题一直是开发者面临的主要挑战。随着CSS标准的快速演进&#xf…

张小明 2026/1/2 2:05:29 网站建设

夜场酒吧娱乐ktv类企业网站源码图文广告公司名字

Kotaemon能否用于智能投顾问答?金融监管注意事项 在金融科技加速演进的今天,越来越多金融机构开始尝试将大模型技术引入智能投顾服务。用户一句“我适合买什么基金?”背后,不仅是对个性化建议的需求,更考验着系统是否…

张小明 2026/1/2 2:05:28 网站建设

如何保护网站模板微信小程序开发者模式

深入探索Bash脚本:条件判断、输入读取与逻辑控制 1. 脚本退出状态与函数返回值 在Bash脚本中, exit 命令可用于设置脚本的退出状态。当不带参数使用时,退出状态默认为0;若传入参数,该参数将作为脚本的退出状态。例如,当 $FILE 扩展为不存在的文件名时,可使用 exi…

张小明 2026/1/2 2:05:29 网站建设

购物网站怎么做代码tp5网站开发步骤

EmotiVoice:让语音导航“有温度”的技术实践 在高速公路上连续驾驶两小时后,你是否曾对车载导航那句千篇一律的“前方五百米右转”充耳不闻?又或者,在陌生城市中迷路时,多么希望听到一个熟悉、温和的声音说&#xff1a…

张小明 2026/1/2 2:05:30 网站建设

餐饮网站建设怎样试玩网站设计建设

传统的文献搜索,是我们去适应机器的逻辑:拆解关键词、使用布尔运算符(AND, OR, NOT)。而新一代的AI学术工具,正在让机器来适应人类的思维:它们能理解模糊的问题,能联想相关的概念,甚…

张小明 2026/1/2 2:05:30 网站建设

做机械方面外贸最大的网站窍门天下什么人做的网站

从零搭建8个基本门电路:手把手教你点亮第一盏逻辑灯 你有没有想过,计算机里那些复杂的运算,其实都源于几个最简单的“开关组合”? 今天我们就来干一件“返璞归真”的事——不用单片机、不写代码、不调库函数,只用几块…

张小明 2026/1/2 2:05:31 网站建设