秋招算法刷題10(棧和隊列)

0509

232.用棧實現隊列

class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack = new ArrayDeque<Integer>();outStack = new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop() {if (outStack.isEmpty()) {in2Out();}return outStack.pop();}public int peek() {if (outStack.isEmpty()) {in2Out();}return outStack.peek();}public boolean empty() {return inStack.isEmpty() && outStack.isEmpty();}private void in2Out() {while (!inStack.isEmpty()) {outStack.push(inStack.pop());}}}

225. 用隊列實現棧


20.有效的括號

class Solution {private static final Map<Character,Character> map=new HashMap<Character,Character>(){{put('{','}');put('(',')');put('[',']');put('?','?');}};public boolean isValid(String s) {if(s.length()>0&&!map.containsKey(s.charAt(0))) return false;LinkedList<Character> stack=new LinkedList<Character>() {{add('?');}};for(Character c:s.toCharArray()){if(map.containsKey(c)) stack.addLast(c);else if(map.get(stack.removeLast()) !=c) return false;}return stack.size()==1;}
}

0510

1047 刪除字符串中的所有相鄰重復項

在這里插入圖片描述

public String removeDuplicates(String s) {char[] s1=s.toCharArray();int top=-1;for(int i=0;i<s.length();i++){if(top==-1||s1[top]!=s1[i]){s1[++top]=s1[i];}else{top--;}}return String.valueOf(s1,0,top+1);}

150.逆波蘭表達式求值

在這里插入圖片描述

public int evalRPN(String[] tokens) {Stack<Integer> numStack=new Stack<>();Integer op1,op2;for(String s:tokens){switch(s){case "+":op2=numStack.pop();op1=numStack.pop();numStack.push(op1+op2);break;case "-":op2=numStack.pop();op1=numStack.pop();numStack.push(op1-op2);break;case "*":op2=numStack.pop();op1=numStack.pop();numStack.push(op1*op2);break;case "/":op2=numStack.pop();op1=numStack.pop();numStack.push(op1/op2);break;default:numStack.push(Integer.valueOf(s));break;}}return numStack.pop();}

347.前k個高頻元素

在這里插入圖片描述

public int[] topKFrequent(int[] nums, int k) {// 優先級隊列,為了避免復雜 api 操作,pq 存儲數組// lambda 表達式設置優先級隊列從大到小存儲 o1 - o2 為從小到大,o2 - o1 反之PriorityQueue<int[]> pq = new PriorityQueue<>((o1, o2) -> o1[1] - o2[1]);int[] res = new int[k]; // 答案數組為 k 個元素Map<Integer, Integer> map = new HashMap<>(); // 記錄元素出現次數for (int num : nums) map.put(num, map.getOrDefault(num, 0) + 1);for (var x : map.entrySet()) { // entrySet 獲取 k-v Set 集合// 將 kv 轉化成數組int[] tmp = new int[2];tmp[0] = x.getKey();tmp[1] = x.getValue();pq.offer(tmp);// 下面的代碼是根據小根堆實現的,我只保留優先隊列的最后的k個,只要超出了k我就將最小的彈出,剩余的k個就是答案if(pq.size() > k) {pq.poll();}}for (int i = 0; i < k; i++) {res[i] = pq.poll()[0]; // 獲取優先隊列里的元素}return res;}

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

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

相關文章

13.跳躍游戲

文章目錄 題目簡介題目解答解法一&#xff1a;貪心算法&#xff0b;動態規劃代碼&#xff1a;復雜度分析&#xff1a; 題目鏈接 大家好&#xff0c;我是曉星航。今天為大家帶來的是 跳躍游戲面試題 相關的講解&#xff01;&#x1f600; 題目簡介 題目解答 思路&#xff1a;這…

Vue3知識總結-2

目錄 通過key來管理狀態 事件處理 內聯事件處理器 方法事件處理器 事件傳參 獲取event 傳遞參數 傳參的過程中獲取事件對象 事件修飾符 阻止事件描述符 阻止事件冒泡 數組變化偵測 變更方式 替換一個數組 計算屬性 Class綁定 綁定對象 綁定數組 Style綁定 …

【Python 常用腳本及命令系列 3.3 -- Python 統計程序執行時間】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 Python 統計程序執行時間 Python 統計程序執行時間 在Python中&#xff0c;可以使用time模塊來測量執行一個函數所需的時間。以下是一個基本的例子&#xff0c;展示了如何實現這一功能&#xff1a; import time def your_function…

element-plus 工作經驗總結

Element-plus 文章目錄 Element-plus忠告: 最好鎖定版本, 免得更新更出 BUG 來了el-drawer 設置 modal"false" 后, 遮罩元素仍存在, 點不了空白的地方el-tree 大數據量時接收 check-change 事件報錯導致涉及多個節點的操作沒執行完畢el-table 表頭 show-overflow-too…

前端小程序調用 getLocation 實現地圖位置功能,通過 緯度:latitude 經度: longitude 獲取當前位置

1、首先登錄一下 騰訊的位置服務 有賬號就登錄沒賬號就注冊&#xff0c; 點擊右上角的控制臺點擊左側的應用管理 ---> 我的應用 ---->> 創建應用 1、創建應用 2、列表就會顯示我們剛剛創建好的 key 3、點擊添加 key 4、按照要求填寫信息 我們用的是小程序 所以選擇…

二叉樹介紹

引入 定義 區別 定義不同 形態不同 基本形態

AD域服務器巡檢指南

Active Directory (AD) 域服務器的巡檢對于確保企業網絡的安全性和高效運行至關重要。以下是針對AD域服務器巡檢的關鍵活動和其重要性的優化描述&#xff1a; 保證系統安全&#xff1a; AD域服務器儲存大量敏感數據&#xff0c;包括用戶賬戶信息、策略和訪問權限數據。定期巡檢…

windows和 Linux 下通過 QProcess 打開ssh 和vnc

文章目錄 SSHSSH驗證啟動SSH一、口令登錄二、公鑰登錄通過Qprocess 啟動ssh VNC Viewer簡介通過QProcess啟動vncViewer SSH Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的**安全網絡協議**。它是專為遠程登錄會話(**甚至可以…

uniapp下拉選擇組件

uniapp下拉選擇組件 背景實現思路代碼實現配置項使用尾巴 背景 最近遇到一個這樣的需求&#xff0c;在輸入框中輸入關鍵字&#xff0c;通過接口查詢到結果之后&#xff0c;以下拉框列表形式展現供用戶選擇。查詢了下uni-app官網和項目中使用的uv-ui庫&#xff0c;沒找到符合條…

微信小程序中的圖像奧秘:圖片與Base64的華麗變身記

微信小程序中的圖像奧秘&#xff1a;圖片與Base64的華麗變身記 基本概念解析圖片與Base64的關系為何轉換 圖片轉Base64實戰微信小程序使用wx.getImageInfo獲取圖片信息圖片轉換為Base64注意 Base64轉圖片直接在小程序頁面顯示云開發環境轉換注意 遇遇問題排查思路結語引發討論 …

前端開發工程師——ajax

express框架 終端輸入 npm init --yes npm i express 請求報文/響應報文 // 1.引入express const express require(express);// 2.創建應用對象 const app express();// 3.創建路由規則 // request:是對請求報文的封裝 // response&#xff1a;是對響應報文的封裝 app.get(…

【御控物聯】Java JSON結構轉換、JSON協議轉換、JSON屬性互換(15):對象To數組——轉換映射方式

文章目錄 一、JSON結構轉換是什么&#xff1f;二、術語解釋三、案例之《JSON對象 To JSON數組》四、代碼實現五、在線轉換工具六、技術資料 一、JSON結構轉換是什么&#xff1f; JSON結構轉換指的是將一個JSON對象或JSON數組按照一定規則進行重組、篩選、映射或轉換&#xff0…

Vue3自定義封裝音頻播放組件(帶拖拽進度條)

Vue3自定義封裝音頻播放組件&#xff08;帶拖拽進度條&#xff09; 描述 該款自定義組件可作為音頻、視頻播放的進度條&#xff0c;用于控制音頻、視頻的播放進度、暫停開始、拖拽進度條拓展性極高。 實現效果 具體效果可以根據自定義內容進行位置調整 項目需求 有播放暫停…

XSS實戰漏洞挖掘

接下來一年時間將會主要研究滲透測試方向的眾多問題&#xff0c;文章中的內容也會在后面定期更新。本文主要記錄了一些XSS漏洞挖掘中的實用心得和學習筆記。 漏洞描述 漏洞描述&#xff1a;跨站腳本攻擊的英文全稱是Cross Site Script&#xff0c;為了和樣式表區分&#xff0…

python實現pip一鍵切換國內鏡像源腳本分享

本文主要分享一個自己寫的pip一鍵切換國內鏡像源python腳本 import subprocess# pip 國內鏡像源加速 source_urls [{"name": "默認鏡像源", "url": ""},{"name": "清華大學鏡像源(推薦使用)", "url": …

sqlserver數據庫日志文件log.ldf文件占用過大清除的辦法

sqlserver數據庫日志文件log.ldf文件占用過大清除的辦法 技術交流 http://idea.coderyj.com/ 1.清除數據庫日志的方法 --- 查看數據庫日志文件名 USE cs GO SELECT file_id, name,size,* FROM sys.database_files;ps 可以看到其中name字段為數據庫日志名稱"數據庫日志名稱…

【MATLAB源碼-第206期】基于matlab的差分進化算法(DE)機器人柵格路徑規劃,輸出做短路徑圖和適應度曲線。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 差分進化算法&#xff08;Differential Evolution, DE&#xff09;是一種有效的實數編碼的進化算法&#xff0c;主要用于解決實值函數的全局優化問題。本文將詳細介紹差分進化算法的背景、原理、操作步驟、參數選擇以及實際應…

返回分類信息(帶層級)

文章目錄 1.前端展示分類管理信息1.目前項目架構2.啟動前后端項目1.啟動mysql容器2.啟動后端 renren-fast3.啟動前端1.界面2.用戶名密碼都是admin 3.創建分類管理菜單1.菜單管理 -> 新增 -> 新增目錄2.刷新3.能夠新增菜單的原因是前端腳手架與renren-fast后端腳手架通信&…

全面理解BDD(行為驅動開發):轉變思維方式,提升軟件質量

在傳統的軟件開發流程中&#xff0c;開發人員和測試人員的工作通常是相互獨立的。開發人員負責編寫代碼&#xff0c;測試人員負責找出代碼中的問題。然而&#xff0c;這種方法可能導致溝通不足&#xff0c;而且會浪費時間和資源。為了解決這些問題&#xff0c;出現了一種新的開…

Mask2former代碼詳解

1.整體流程 Mask2former流程如圖所示&#xff0c;對于輸入圖片&#xff0c;首先經過Resnet等骨干網絡獲得多層級特征&#xff0c;對于獲得的多層級特征&#xff0c;一個方向經過pixel decoder(基于DetrTransformerEncoderLayer)得到per-pixel embedding,另外一個方向經過transf…