7月11日學習打卡,數據結構棧

大家好呀,本博客目的在于記錄暑假學習打卡,后續會整理成一個專欄,主要打算在暑假學習完數據結構,因此會發一些相關的數據結構實現的博客和一些刷的題,個人學習使用,也希望大家多多支持,有不足之處也請指出,謝謝大家。

一,力扣115,最小棧

. - 力扣(LeetCode)

簡單用數組模擬一個棧即可,不過我這里圖省事運行速度不太高,優化空間很大

class MinStack {int[] el;int numsize;public MinStack() {el = new int[10000];int numsize = 0;}// private void grow(){// this.el=Arrays.copyof(el,2*el.lenth);// }public void push(int val) {// if (el.lenth == numsize) {// grow();// }el[numsize] = val;numsize++;}public int pop() {if (empty())return -1;return el[--numsize];}public int top() {return el[numsize - 1];}private boolean empty() {return numsize == 0;}public int getMin() {int num = el[0];for (int i = 0; i < numsize; i++) {if (el[i] < num)num = el[i];}return num;}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(val);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

二,楊輝三角

. - 力扣(LeetCode)

分析:為了因用前面學習過的順序表,這題我們采用順序表解決,用順序表模擬一個二維數組,注意順序表模擬的二維數組不能簡單通過下標訪問元素

class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret=new ArrayList<>();List<Integer> list=new ArrayList<>();list.add(1);ret.add(list);for(int i=1;i<numRows;i++){List<Integer> row=new ArrayList<>();row.add(1);List<Integer> a= ret.get(i-1);for (int j = 1; j < i; j++) {int val1=a.get(j);int val2=a.get(j-1);row.add(val1+val2);}row.add(1);ret.add(row);}return ret;}
}

三,力扣150,逆波蘭表達式求值

注:波蘭表達式是一種能被計算機理解的式子

. - 力扣(LeetCode)

思路:遍歷數組,先判斷字符串是否是數字,如果是數字,則轉化為數字進棧,否則,取出兩個操作數,按照操作符用后取出的“+”“-”“*”或“/”后一個,最后棧里剩的便是最終答案

class Solution {public int evalRPN(String[] tokens) {Stack<Integer> st = new Stack();for (int i = 0; i < tokens.length; i++) {String str = tokens[i];if (o(str) == false) {int val = Integer.parseInt(str);st.push(val);} else {int val1 = st.pop();int val2 = st.pop();switch (str) {case "+":st.push(val2+val1);break;case "-":st.push(val2-val1);break;case "*":st.push(val2*val1);break;case "/":st.push(val2/val1);break;}}}return st.peek();}private boolean o (String s){if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {return true;}return false;}}

本期博客就到這里,謝謝大家

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

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

相關文章

dataX入門

下載dataX https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 然后 下載后解壓至本地某個目錄&#xff0c;進入bin目錄&#xff0c;即可運行同步作業&#xff1a; $ cd {YOUR_DATAX_HOME}/bin $ python datax.py {YOUR_JOB.json} 要求你有python…

vue-grid-layout詳解

vue-grid-layout 教程 vue-grid-layout 是一個用于 Vue.js 的響應式拖放網格布局組件&#xff0c;允許開發者創建可調整大小、可拖放的布局&#xff0c;廣泛用于儀表板、管理面板等復雜布局需求。本教程將介紹如何安裝、配置和使用 vue-grid-layout。 目錄 安裝基本使用 布局…

怎樣在 C 語言中進行類型轉換?

&#x1f345;關注博主&#x1f397;? 帶你暢游技術世界&#xff0c;不錯過每一次成長機會&#xff01; &#x1f4d9;C 語言百萬年薪修煉課程 通俗易懂&#xff0c;深入淺出&#xff0c;匠心打磨&#xff0c;死磕細節&#xff0c;6年迭代&#xff0c;看過的人都說好。 文章目…

暑假自律日記九

7.10 &#xff08;半小時日記打卡之——暑假第九天&#xff09; 前言&#xff1a;或許是累了&#xff0c;今天的效率和進度可以說是歷史最低了&#xff0c;調休了一天&#xff0c;算是歇會 日程 八點二十起床&#xff0c;在床上賴了一會 九點二十抵達逸夫樓&#xff0c;開始補…

kafka發送消息流程

配置props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class); public Map<String,Object> producerConfigs(){Map<String,Object> props new HashMap<>();props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers…

Spring Boot中的安全配置與實現

Spring Boot中的安全配置與實現 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將深入探討Spring Boot中的安全配置與實現&#xff0c;看看如何保護你的…

在表格中把tab換成enter鍵------ivx

為了方便用戶輸入&#xff0c;把tab鍵替換成enter回車 方法如下&#xff1a; 添加一個fx函數 document.addEventListener(‘keydown’, function(event) { if (event.key ‘Enter’ && !event.shiftKey) { event.preventDefault(); var focusableElements document.q…

昇思25天打卡營-mindspore-ML- Day22-應用實踐-自然語言處理-LSTM+CRF序列標注

昇思25天打卡營-mindspore-ML- Day22-應用實踐-自然語言處理-LSTMCRF序列標注 今天學習了 LSTMCRF 序列標注方法&#xff0c;它是一種結合了循環神經網絡&#xff08;RNN&#xff09;和條件隨機場&#xff08;CRF&#xff09;的強大模型&#xff0c;用于處理序列標注問題&#…

【C++BFS】690. 員工的重要性

本文涉及知識點 CBFS算法 LeetCode690. 員工的重要性 你有一個保存員工信息的數據結構&#xff0c;它包含了員工唯一的 id &#xff0c;重要度和直系下屬的 id 。 給定一個員工數組 employees&#xff0c;其中&#xff1a; employees[i].id 是第 i 個員工的 ID。 employees[…

RabbitMQ 高級功能

RabbitMQ 是一個廣泛使用的開源消息代理&#xff0c;它支持多種消息傳遞協議&#xff0c;可以在分布式系統中用于可靠的消息傳遞。除了基本的消息隊列功能外&#xff0c;RabbitMQ 還提供了一些高級功能&#xff0c;增強了其在高可用性、擴展性和靈活性方面的能力。以下是一些主…

軟件架構之嵌入式系統設計(2)

軟件架構之嵌入式系統設計&#xff08;2&#xff09; 12.4 嵌入式網絡系統12.4.1 現場總線網12.4.2 家庭信息網11.4.3 無線數據通信網12.4.4 嵌入式 Internet 12.5 嵌入式數據庫管理系統12.5.1 使用環境的特點12.5.2 系統組成與關鍵技術 12.6 實時系統與嵌入式操作系統12.6.1 嵌…

MyBatis(38)MyBatis 如何與 Spring Boot 集成,有哪些實踐技巧

集成MyBatis與Spring Boot可以極大地提升開發效率&#xff0c;簡化配置&#xff0c;并利用Spring Boot的自動配置特性優化項目結構和性能。下面我們將詳細探討如何實現這一集成&#xff0c;并分享一些實踐技巧。 1. 添加依賴 首先&#xff0c;在pom.xml中添加MyBatis和Spring…

AI學習指南機器學習篇-聚類樹的剪枝

AI學習指南機器學習篇-聚類樹的剪枝 在機器學習領域&#xff0c;聚類是一種常用的無監督學習方法&#xff0c;通過對數據進行分組來發現數據中的結構和模式。聚類樹是一種常用的聚類算法之一&#xff0c;它通過構建一個樹狀結構來展示聚類的層次關系&#xff0c;并能夠幫助我們…

Linux 忘記root密碼,通過單用戶模式修改

銀河麒麟桌面操作系統 V10&#xff08;sp1&#xff09;”忘記用戶密碼&#xff0c;需要修改用戶密碼所寫&#xff0c;可用于 X86 架構和 arm 架構。 2. 選擇第一項&#xff0c;在上圖界面按“e”鍵進行編輯修改。 3. 在以 linux 開頭這行的行末&#xff0c;添加“init/bin/bas…

Rockchip Android平臺編譯生成userdata.img

Rockchip Android平臺編譯生成userdata.img 適用版本 本修改方法適用于Android12及以上版本 代碼修改 device/rockchip/rk3576&#xff1a; --- a/rk3576_u/BoardConfig.mkb/rk3576_u/BoardConfig.mk-28,4 28,7 PRODUCT_KERNEL_CONFIG pcie_wifi.configBOARD_GSENSOR_MXC…

SSE(Server-Send-Event)服務端推送數據技術

SSE&#xff08;Server-Send-Event&#xff09;服務端推送數據技術 大家是否遇到過服務端需要主動傳輸數據到客戶端的情況&#xff0c;目前有三種解決方案。 客戶端輪詢更新數據。服務端與客戶端建立 Socket 連接雙向通信服務端與客戶建立 SSE 連接單向通信 幾種方案的比較&…

【前端】fis框架學習

文章目錄 1. 介紹 1. 介紹 FIS是專為解決前端開發中自動化工具、性能優化、模塊化框架、開發規范、代碼部署、開發流程等問題的工具框架。 使用FIS我們可以快速的完成各種前端項目的資源壓縮、合并等等各種性能優化工作&#xff0c;同時FIS還提供了大量的開發輔助功能 首先我們…

Nginx上配置多個網站

一、需求描述 我們只有一臺安裝了Nginx的服務器,但是我們需要實現在這臺服務器上部署多個網站,用以對外提供服務。 二、Nginx上配置多個網站分析 一般網站的格式為:【http://ip地址:端口號/URI】(比如:http://192.168.3.201:80),IP地址也可用域名表示;那么要實現在Nginx…

QT實現WebSocket通信

文章目錄 WebSocket服務端WebSocket客戶端html websocket客戶端在Qt5中實現WebSocket通信可以通過使用QtWebSockets模塊來實現。這個模塊提供了一個WebSocket客戶端和服務器的實現,可以很方便地在你的應用程序中集成WebSocket功能。 使用的時候,首先在pro工程文件中添加對應的…

【Vue】vue-element-admin概述

一、項目簡介 定位&#xff1a;vue-element-admin是一個后臺集成解決方案&#xff0c;旨在提供一種快速開發企業級后臺應用的方案&#xff0c;讓開發者能更專注于業務邏輯和功能實現&#xff0c;而非基礎架構的搭建。技術棧&#xff1a;該項目基于Vue.js、Element UI、Vue Rou…