国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 行業(yè)資訊 > 為什么很多同事,下班后寧愿在工位刷抖音也不回家呢?

為什么很多同事,下班后寧愿在工位刷抖音也不回家呢?

時(shí)間:2024-04-09 來源: 瀏覽:

為什么很多同事,下班后寧愿在工位刷抖音也不回家呢?

Go語言教程 Python架構(gòu)師
Python架構(gòu)師

gh_1d7504e4dee1

回復(fù):python,領(lǐng)取Python面試題。分享Python教程,Python架構(gòu)師教程,Python爬蟲,Python編程視頻,Python腳本,Pycharm教程,Python微服務(wù)架構(gòu),Python分布式架構(gòu),Pycharm注冊碼。

你下班了,是立刻回家還是會再待一會?相信大家肯定都是馬上飛奔回家吧,再待一會干嘛,上班上出癮了嗎?然而,一網(wǎng)友就發(fā)帖提問:為什么公司那么多同事(尤其是Leader),晚上寧愿在工位刷抖音也不下班回家呢?

帖子下面,熱愛評論的寶子們?yōu)槲覀兘饣罅?。有人直接說:“據(jù)觀察,有的是不想回家?guī)『?,有的是單身狗不想回狹小的出租屋”

還有人說:“因?yàn)榛丶抑挥锌帐幨幍姆块g 在公司省電費(fèi)”區(qū)區(qū)幾個字,越看越心酸。

另一邊,還有人開玩笑:“等著家里老婆完事,不想回去撞到尷尬?!卑∵@...

更有人直言:“我之前問過我們公司一個領(lǐng)導(dǎo),他跟我說等我到了他那個年紀(jì),你就知道了”

這也反映出了一種生活狀態(tài):在外面各種當(dāng)牛馬,回家還要面對各種壓力,所以,不回家就成了最簡單的逃避方式。

但不管怎樣,生活還得繼續(xù),希望大家都能找到屬于自己的調(diào)味劑。畢竟,生活不止眼前的茍且,還有詩和遠(yuǎn)方,不是嗎?那么你們覺得又是為什么呢?

下面是今日的大廠算法題

今日算法題,來自LeetCode的第34題:在排序數(shù)組中查找元素的第一個和最后一個位置,下面是我的算法思路及實(shí)現(xiàn),讓我們來看看吧。

算法題目

給定一個按照升序排列的整數(shù)數(shù)組 nums 和一個目標(biāo)值 target,找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。

如果數(shù)組中不存在目標(biāo)值 target,返回 [-1, -1]。

你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為 O(log n) 的算法。

資源分享

點(diǎn)擊領(lǐng)?。鹤钊玃ython資料合集

算法思路

本題可以通過二分查找算法進(jìn)行兩次查找來解決:

  1. 第一次二分查找定位到目標(biāo)值的開始位置:

    • 如果 mid 對應(yīng)的值大于或等于 target,移動右邊界 right 到 mid。

    • 否則,移動左邊界 left 到 mid + 1。

    • 最終,左邊界 left 將指向目標(biāo)值的開始位置。

  2. 第二次二分查找定位到目標(biāo)值的結(jié)束位置:
    • 如果 mid 對應(yīng)的值小于或等于 target,移動左邊界 left 到 mid + 1。

    • 否則,移動右邊界 right 到 mid。

    • 最終,右邊界 right 將指向目標(biāo)值的結(jié)束位置的下一個位置,所以目標(biāo)值的結(jié)束位置實(shí)際上是 right - 1。

在每次查找過程中,都需要檢查邊界條件,確保不會出現(xiàn)越界的情況。

代碼實(shí)現(xiàn)
Go語言實(shí)現(xiàn)

func searchRange (nums []int, target int) []int { findFirstPosition := func () int { left , right := 0 , len(nums)- 1 for left <= right { mid := left + ( right - left )/ 2 if nums[mid] < target { left = mid + 1 } else { right = mid - 1 } } if left < len(nums) && nums[ left ] == target { return left } return - 1 } findLastPosition := func () int { left , right := 0 , len(nums)- 1 for left <= right { mid := left + ( right - left )/ 2 if nums[mid] <= target { left = mid + 1 } else { right = mid - 1 } } if right >= 0 && nums[ right ] == target { return right } return - 1 } return []int{findFirstPosition(), findLastPosition()} }

Java實(shí)現(xiàn)

public int[] searchRange(int[] nums, int target) { int[] result = new int[]{- 1 , - 1 }; result[ 0 ] = findFirstPosition(nums, target); result[ 1 ] = findLastPosition(nums, target); return result; } private int findFirstPosition(int[] nums, int target) { int left = 0 , right = nums.length - 1 ; while ( left <= right ) { int mid = left + ( right - left ) / 2 ; if (nums[mid] >= target) { right = mid - 1 ; } else { left = mid + 1 ; } } if ( left < nums.length && nums[ left ] == target) return left ; return - 1 ; } private int findLastPosition(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 { right = mid - 1 ; } } if ( right >= 0 && nums[ right ] == target) return right ; return - 1 ; }

JavaScript實(shí)現(xiàn)

function searchRange(nums, target) { function findFirstPosition() { let left = 0 , right = nums.length - 1 ; while ( left <= right ) { let mid = Math .floor(( left + right ) / 2 ); if (nums[mid] >= target) { right = mid - 1 ; } else { left = mid + 1 ; } } if (nums[ left ] === target) return left ; return - 1 ; } function findLastPosition() { let left = 0 , right = nums.length - 1 ; while ( left <= right ) { let mid = Math .floor(( left + right ) / 2 ); if (nums[mid] <= target) { left = mid + 1 ; } else { right = mid - 1 ; } } if (nums[ right ] === target) return right ; return - 1 ; } return [findFirstPosition(), findLastPosition()]; }

算法解析

這種方法利用了二分查找的高效查找能力,在對數(shù)組進(jìn)行兩次二分查找后,能夠精確地找到目標(biāo)值的開始和結(jié)束位置。

通過調(diào)整左右邊界的移動策略,我們可以分別定位到目標(biāo)值的首次和最后一次出現(xiàn)的位置,從而實(shí)現(xiàn)了在 O(log n) 時(shí)間復(fù)雜度內(nèi)解決問題的目標(biāo)。

示例和測試

對于數(shù)組 nums = [5,7,7,8,8,10] 和目標(biāo)值 target = 8:

  • 第一次查找定位到開始位置,結(jié)果為 3。

  • 第二次查找定位到結(jié)束位置,結(jié)果為 4。

因此,函數(shù)返回 [3, 4]。

總結(jié)
在排序數(shù)組中查找元素的第一個和最后一個位置的問題,通過二分查找方法可以高效解決。二分查找雖然非常高效,但前提是數(shù)據(jù)必須是有序的。
因此,在使用二分查找之前,應(yīng)先考慮數(shù)據(jù)是否滿足這一條件,或者是否有必要先進(jìn)行排序。同時(shí),也要考慮排序本身的成本是否可接受,因?yàn)樵谀承┣闆r下,排序的時(shí)間復(fù)雜度可能會抵消二分查找?guī)淼男侍嵘?

 
熱門推薦
  • 為什么很多企業(yè)明確不招外包?
  • Pandas 教程-Pandas DataFrame.where()
  • 干掉 Postman?測試接口直接生成API文檔,這個文檔工具真香!

下一條:返回列表
版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦