代碼隨想錄二刷day01

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、704. 二分查找
  • 二、35. 搜索插入位置
  • 三、34. 在排序數組中查找元素的第一個和最后一個位置
  • 四、69. x 的平方根
  • 五、367. 有效的完全平方數
  • 六、27. 移除元素
  • 七、26. 刪除有序數組中的重復項
  • 八、283. 移動零
  • 九、844. 比較含退格的字符串
  • 十、977. 有序數組的平方


前言

使用左閉右閉區間的二分查找時, 最后low一定是被查找元素的插入位置,若查找的數帶小數,low-1, 便是最終結果

一、704. 二分查找

1、左閉右閉

class Solution {public int search(int[] nums, int target) {int low = 0, high = nums.length-1, mid = 0;while(low <= high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid - 1;}}return -1;}
}

2、左閉右開

class Solution {public int search(int[] nums, int target) {int low = 0, high = nums.length, mid = 0;while(low < high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return -1;}
}

二、35. 搜索插入位置

class Solution {public int searchInsert(int[] nums, int target) {int low = 0, high = nums.length, mid;while(low < high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return low;}
}

三、34. 在排序數組中查找元素的第一個和最后一個位置

class Solution {public int[] searchRange(int[] nums, int target) {int low = 0, high = nums.length, mid; int[] res = {-1, -1};while(low < high){mid = (low + high)/2;if(nums[mid] == target){res[0] = res[1] = mid;while(res[0]-1 >= 0 && nums[res[0] - 1] == target){res[0] -= 1;}while(res[1] + 1 < nums.length && nums[res[1] + 1] == target){res[1] += 1;}return res;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return res;}
}

四、69. x 的平方根

class Solution {public int mySqrt(int x) {int low = 0, high = x, mid;if(x == 0 || x == 1){return x;}while(low <= high){mid = (low + high)/2;if(x / mid == mid){return mid;}else if(x / mid > mid){low = mid +1;}else{high = mid -1;}}return low - 1;}
}

五、367. 有效的完全平方數

lass Solution {public boolean isPerfectSquare(int num) {int x = 1;while(num > 0){num -= x;x += 2;}return num == 0;}
}

六、27. 移除元素

class Solution {public int removeElement(int[] nums, int val) {int i = 0, j = 0;for(;i < nums.length; ){if(nums[i] != val){nums[j] = nums[i];i ++; j ++;}else{i ++;}}return j;}
}

七、26. 刪除有序數組中的重復項

class Solution {public int removeDuplicates(int[] nums) {if(nums.length == 1){return 1;}int i = 1, j = 0;for(; i < nums.length; ){if(nums[i] != nums[j]){nums[++j] = nums[i++];}else{i ++;}}return j + 1;}
}

八、283. 移動零

class Solution {public void moveZeroes(int[] nums) {int i = 0, j = 0, len = nums.length;if(len == 1)return;while(i < len){if(nums[i] != 0){nums[j] = nums[i];if(i == j){i ++;}else{nums[i++] = 0;}j ++;}else{i ++;}}}
}

九、844. 比較含退格的字符串

class Solution {public boolean backspaceCompare(String s, String t) {Deque<Character> deq1 = new ArrayDeque<>();Deque<Character> deq2 = new ArrayDeque<>();char[] ch1 = s.toCharArray();char[] ch2 = t.toCharArray();for(int i = 0; i < ch1.length; i ++){if(ch1[i] != '#'){deq1.offerFirst(ch1[i]);}else if(!deq1.isEmpty()){deq1.pollFirst();}}for(int j = 0; j < ch2.length; j ++){if(ch2[j] != '#'){deq2.offerFirst(ch2[j]);}else if(!deq2.isEmpty()){deq2.pollFirst();}}while(!deq1.isEmpty() && !deq2.isEmpty()){char c1 = deq1.pollFirst();char c2 = deq2.pollFirst();if(c1 != c2){return false;}}return deq1.isEmpty() && deq2.isEmpty();}
}

十、977. 有序數組的平方

class Solution {public int[] sortedSquares(int[] nums) {Deque<Integer> deq1 = new LinkedList<>();Deque<Integer> deq2 = new LinkedList<>();for(int i = 0; i < nums.length; i ++){if(nums[i] <= 0){deq1.offerLast(nums[i] * nums[i]);}else{deq2.offerLast(nums[i] * nums[i]);}}int k = 0;while(!deq1.isEmpty() && !deq2.isEmpty()){if(deq1.peekLast() <= deq2.peekFirst()){nums[k ++] = deq1.pollLast();}else{nums[k ++] = deq2.pollFirst();}}while(!deq1.isEmpty()){nums[k ++] = deq1.pollLast();}while(!deq2.isEmpty()){nums[k ++] = deq2.pollFirst();}return nums;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41670.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JDBC Vertica Source Connector 使用文檔

支持以下引擎 Spark Flink SeaTunnel Zeta 關鍵特性 批處理 精確一次性處理 列投影 并行處理 支持用戶自定義拆分 支持查詢 SQL 并實現投影效果 描述 通過 JDBC 讀取外部數據源數據。 支持的數據源信息 DatasourceSupported versionsDriverUrlMavenVerticaDifferent depen…

40、端口號和套接字

經過了上節的學習之后&#xff0c;接下來我們再要了解的一個知識就是端口號和套接字。尤其端口號&#xff0c;是傳輸層中最為重要的基礎概念之一&#xff0c;我們在以后的學習中會經常提及到端口號。 端口號 曾經在學習TCP/IP模型的時候&#xff0c;我們曾學過“SAP”即服務訪…

設計HTML5表格

在網頁設計中&#xff0c;表格主要用于顯示包含行、列結構的二維數據&#xff0c;如財務表格、調查數據、日歷表、時刻表、節目表等。在大多數情況下&#xff0c;這類信息都由列標題或行標題及數據構成。本章將詳細介紹表格在網頁設計中的應用&#xff0c;包括設計符合標準化的…

【第七講---視覺里程計1】

視覺里程計就是通過對圖像進行特征提取與匹配得到兩幀之間的位姿&#xff0c;并進行估計相機運動。 經典SLAM中以相機位姿-路標來描述SLAM過程 特征提取與匹配 路標是三維空間中固定不變的點&#xff0c;可以在特定位姿下觀測到在視覺SLAM中&#xff0c;可利用圖像特征點作為…

2023 CCF BDCI 數字安全公開賽正式開啟報名

2023 CCF BDCI 數字安全公開賽重磅來襲&#xff01; 全新的賽道場景 豐厚的賽事獎勵 精彩的周邊活動 數字安全守護人的狂歡盛宴 快來報名參加吧 大賽背景 伴隨著數智化的持續加深&#xff0c;網絡安全、數據安全風險遍布于所有場景之中&#xff0c;包括工業生產、能源、交…

2019年9月全國計算機等級考試真題(C語言二級)

2019年9月全國計算機等級考試真題&#xff08;C語言二級&#xff09; 第1題 1、“商品”與“顧客”兩個實體集之間的聯系一般是 A. 一對一 B. 一對多 C. 多對一 D. 多對多 正確答案&#xff1a;D 第2題 定義學生選修課程的關系模式&#xff1a;SC&#xff08;S#&#xff0c…

tensorboard報錯:AttributeError: module ‘distutils‘ has no attribute ‘version‘

1、報錯問題 環境&#xff1a;pytorch 1.10 tensorboard報錯&#xff1a;AttributeError: module ‘distutils‘ has no attribute ‘version‘ 2、解決 pip uninstall setuptools pip install setuptools59.5.0

運營商三要素 API:構建安全高效的身份驗證系統

當今數字化的世界中&#xff0c;身份驗證是各行各業中至關重要的一環。為了保護用戶的隱私和數據安全&#xff0c;企業需要尋求一種既安全可靠又高效便捷的身份驗證方式。運營商三要素 API 應運而生&#xff0c;為構建安全高效的身份驗證系統提供了有力的解決方案。 運營商三要…

R語言 列表中嵌套列名一致的多個數據框如何整合為一個數據框

在批量建模后容易得到list&#xff0c;list中的每個元素都是單個的tibble 或者 dataframe&#xff0c;如何將這些數據整合為一張表呢&#xff1f; 載入R包 library(broom) library(tidyverse) 模擬數據 models <- txhousing %>% group_by(city) %>% do(modlm(lo…

-Webkit-Box 在 Safari 中出現的兼容性問題

一、問題背景&#xff1a; UI要求要實現這樣的效果&#xff0c;使用 display:-webket-box在chrome瀏覽器下完美解決 但是馬上啪啪打臉&#xff0c;在safari瀏覽器下顯示空白 &#xff0c;不能不說瀏覽器之間的兼容性簡直就是天坑 二、解決辦法 通過瀏覽器調試發現原本float的…

使用Pillow對圖像進行變換

使用Pillow對圖像進行變換 from PIL import Image, ImageEnhance# 原圖 image Image.open("1.jpg") image.show()# 鏡像 mirrored_image image.transpose(Image.FLIP_LEFT_RIGHT) mirrored_image.show() mirrored_image.save(mirror_image.jpg)# 旋轉 rotated_imag…

VK36W1D浴缸,潔具高靈敏度電容式單點液體水位檢測觸摸芯片資料介紹

產品品牌&#xff1a;永嘉微電/VINKA 產品型號&#xff1a;VK36W1D 封裝形式&#xff1a;SOT23-6L 產品年份&#xff1a;新年份 &#xff08;C21-163&#xff09; 產品特點&#xff1a;VK36W1D具有1個觸摸檢測通道&#xff0c;可用來檢測水從無到有和水從有到無的動作。該…

一個模型解決所有類別的異常檢測

文章目錄 一、內容說明二、相關鏈接三、概述四、摘要1、現有方法存在的問題2、方案3、效果 五、作者的實驗六、如何訓練自己的數據1、數據準備2、修改配置文件3、代碼優化修改4、模型訓練與測試 七、結束 一、內容說明 在我接觸的缺陷檢測項目中&#xff0c;檢測缺陷有兩種方法…

網絡通信基礎

1.網絡結構模式&#xff08;C/S和B/S&#xff09; (1)C/S結構模式 服務器 - 客戶機&#xff0c;即 Client - Server&#xff08;C/S&#xff09;結構。 優點&#xff1a; 能充分發揮客戶端 PC 的處理能力&#xff0c;很多工作可以在客戶端處理后再提交給服務器&#xff…

02 qt基本控件及信號和槽

一 QString類 功能:顯示一個字符串內容 主要接口函數 構造函數: QString(const char *str)QString(const QString &other)賦值運算符重載: QString &operator=(const QString &other)功能函數: 1&

如何完善餐飲門店的進店服務,請看餐飲神秘顧客如何專業檢測?

神秘顧客檢測能夠評估餐飲門店實際運營狀況和顧客體驗。但是&#xff0c;并不是所有的神秘顧客都能夠圓滿完成門店的各項檢測任務。如果神秘顧客在執行過程中進展不順&#xff0c;可能是沒有把握重點&#xff0c;神秘顧客調查是群狼調研(長沙快餐連鎖神秘顧客)優勢業務之一&…

C++字符串轉換總結

以下C字符串轉換均在unicode編碼下進行 目錄 string轉wstringwstring轉stringMFC CString轉wstringMFC CString轉stringMFC const char*轉CStringMFC CString轉const char*char、wchar_t數組轉stringTCHAR數組轉到CStringCString轉為TCHAR數組 string轉wstring 當在 Unicode 下…

大數據-玩轉數據-Flink RedisSink

一、添加Redis Connector依賴 具體版本根據實際情況確定 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-redis_2.11</artifactId><version>1.1.5</version> </dependency>二、啟動redis 參…

如何提高深度學習性能

可用于 對抗過度擬合并獲得更好泛化能力的20 個提示、技巧和技術 如何從深度學習模型中獲得更好的性能? 這是我最常被問到的問題之一。 可能會被問為: 如何提高準確率? ……或者可以反過來說: 如果我的神經網絡表現不佳該怎么辦? 我經常回答說:“我不太清楚,但我有很…

分類預測 | MATLAB實現DBN-SVM深度置信網絡結合支持向量機多輸入分類預測

分類預測 | MATLAB實現DBN-SVM深度置信網絡結合支持向量機多輸入分類預測 目錄 分類預測 | MATLAB實現DBN-SVM深度置信網絡結合支持向量機多輸入分類預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 1.分類預測 | MATLAB實現DBN-SVM深度置信網絡結合支持向量機多輸入分…