【每日刷題】Day50

【每日刷題】Day50

🥕個人主頁:開敲🍉

🔥所屬專欄:每日刷題🍍

🌼文章目錄🌼

1.?654. 最大二叉樹 - 力扣(LeetCode)

2.?119. 楊輝三角 II - 力扣(LeetCode)

3.?735. 小行星碰撞 - 力扣(LeetCode)

1.?654. 最大二叉樹 - 力扣(LeetCode)

//思路:遞歸遍歷,通過不斷改變左右區間找到最大值,從而保證在最大值左邊構建子樹以及最大值右邊構建子樹。

typedef struct TreeNode TN;

TN* CreatBinaryTree(int* nums,int left,int right)

{

? ? if(left>right)//當區間不存在時,說明已經沒有值能找了,直接返回NULL

? ? ? ? return NULL;

? ? int max = left;

? ? for(int i = left;i<=right;i++)

? ? {

? ? ? ? if(nums[i]>nums[max])//定位當前最大值的下標,作為下一次尋找左右最大結點的區間

? ? ? ? {

? ? ? ? ? ? max = i;

? ? ? ? }

? ? }

? ? TN* node = (TN*)malloc(sizeof(TN));

? ? node->val = nums[max];

? ? node->left = CreatBinaryTree(nums,left,max-1);

? ? node->right = CreatBinaryTree(nums,max+1,right);

? ? return node;

}



?

struct TreeNode* constructMaximumBinaryTree(int* nums, int numsSize)

{

? ? return CreatBinaryTree(nums,0,numsSize-1);

}

2.?119. 楊輝三角 II - 力扣(LeetCode)

//思路:構建楊輝三角。

int* getRow(int rowIndex, int* returnSize)

{

? ? int** arr = (int**)malloc(sizeof(int*)*34);

? ? for(int i = 0;i<34;i++)

? ? {

? ? ? ? arr[i] = (int*)malloc(sizeof(int)*35);

? ? }

? ? for(int i = 0;i<34;i++)

? ? {

? ? ? ? arr[i][0] = 1;

? ? ? ? arr[i][i] = 1;

? ? }

? ? for(int i = 2;i<34;i++)

? ? {

? ? ? ? for(int j = 1;j<i;j++)

? ? ? ? {

? ? ? ? ? ? arr[i][j] = arr[i-1][j-1]+arr[i-1][j];

? ? ? ? }

? ? }

? ? int* ans = (int*)malloc(sizeof(int)*34);

? ? int count = 0;

? ? for(int i = 0;i<rowIndex+1;i++)

? ? {

? ? ? ? ans[count++] = arr[rowIndex][i];

? ? }

? ? *returnSize = count;

? ? return ans;

}

3.?735. 小行星碰撞 - 力扣(LeetCode)

//思路:棧。遍歷數組,入棧情況: ① 如果棧中沒有元素則入棧? ② 如果數組當前元素>0,則不可能發生碰撞,入棧? ③ 如果棧頂元素<0并且數組當前元素也<0,入棧

出棧情況: 如果棧頂元素>0并且數組當前元素<0,則要判斷是否出棧。① 如果數組當前元素的絕對值>棧頂元素,則將棧頂元素替換為當前數組元素,并繼續跟棧頂下一個元素比較

② 如果數組當前元素的絕對值=棧頂元素,則直接將棧頂元素出棧,不進行入棧操作

③ 如果數組當前元素的絕對值<棧頂元素,則不進行操作。

注意:這里需要考慮到當 是第①種出棧情況時,需要考慮到棧頂下面元素也為負數,或者棧的下標為0的情況。

int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize)

{

? ? int* ans = (int*)malloc(sizeof(int)*10000);

? ? int count = 0;

? ? for(int i = 0;i<asteroidsSize;i++)

? ? {

? ? ? ? if(count==0||asteroids[i]>0||(asteroids[i]<0&&ans[count-1]<0))//入棧情況

? ? ? ? {

? ? ? ? ? ? ans[count++] = asteroids[i];

? ? ? ? }

? ? ? ? else

? ? ? ? {

? ? ? ? ? ? while(count&&(asteroids[i]*(-1))>ans[count-1]&&ans[count-1]>0)//當前數組元素的絕對值大于棧頂元素,并且棧頂元素必須>0才能發生碰撞

? ? ? ? ? ? {

? ? ? ? ? ? ? ? ans[--count] = asteroids[i];

? ? ? ? ? ? }

? ? ? ? ? ? if(count==0||(asteroids[i]<0&&ans[count-1]<0))//考慮到 10 5 -15 這種一路碰撞到棧下標為0或者棧頂下面元素都為負數的情況,需要將返回大小+1

? ? ? ? ? ? {

? ? ? ? ? ? ? ? count++;

? ? ? ? ? ? }

? ? ? ? ? ? if(count&&(asteroids[i]*(-1))==ans[count-1])//如果當前數組元素絕對值與棧頂元素相同,則同歸于盡

? ? ? ? ? ? {

? ? ? ? ? ? ? ? count--;

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? *returnSize = count;

? ? return ans;

}

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

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

相關文章

「動態規劃」粉刷房子

力扣原題鏈接&#xff0c;點擊跳轉。 假設有n個房子&#xff0c;每個房子可以粉刷成紅色、藍色或者綠色。相鄰2個房子不能刷同一種顏色。下標為i的房子粉刷成下標為j的顏色的價格是costs[i][j]。至少需要花多少錢&#xff1f; 我們用動態規劃的思想來解決這個問題。首先定義狀…

微信行駛證識別

1.官網文檔 行駛證識別 | 微信開放文檔 2.免費次數購買微信OCR識別 | 微信服務市場 需要購買&#xff0c;否則會報錯{"errcode":101003,"errmsg":"not enough market quota hint: [] rid: "} 錯誤總結 {\"errcode\":41005,\"…

MATLAB system identification系統辨識app的使用

系統辨識 前言系統辨識第一步 選取時域數據到app第二步 分割數據第三步 設置傳遞函數的參數第四步 Estimate第五步 結束 前言 接上節&#xff1a;simulink-仿真以及PID參數整定 系統模型的辨識工作&#xff0c;在控制領域&#xff0c;一般用于開發控制器的先手工作。一般而言…

【數據結構與算法 | 基礎篇】棧:中綴表達式轉變為后綴表達式

1. 前言 假設我們已經知道中綴表達式和后綴表達式的概念. 我們可以用符號棧來實現中綴表達式向后綴表達式的轉變. 2. 符號棧實現中綴表達式轉變為后綴表達式 (1). 思路 我們設計了可變字符串與符號棧. 如果傳入的字符串的字符是數字字符&#xff0c;則直接將該字符append到…

Python | 十、調試(pdb庫)

pdb 是 Python 的官方標準庫之一&#xff0c;提供了一個交互式源代碼調試器。它可以讓開發者在程序執行過程中暫停&#xff0c;檢查代碼狀態&#xff08;如變量的值&#xff09;&#xff0c;單步執行代碼&#xff0c;以及運行到某個特定位置等。這些功能使得開發者能夠理解代碼…

調整圖片和表格尺寸的命令:resizebox

\resizebox 是 LaTeX 中的一個命令&#xff0c;用于調整插入的內容&#xff08;如圖像、表格、文本等&#xff09;的大小。它的語法如下&#xff1a; \resizebox{<width>}{<height>}{<content>}其中&#xff1a; <width> 和 <height> 分別表示…

IDEA提示Untrusted Server‘s certificate

如果你用的是Intellij系列IDE&#xff08;GoLand, PHPStorm, WebStorm, IDEA&#xff09;&#xff0c;突然彈出個提示『Untrusted Servers certificate 』 莫慌&#xff0c;這是因為你用了破解版的 IDE&#xff0c;破解過程中有個hosts綁定的操作&#xff1a; 0.0.0.0 account.…

代數拓撲學

啊&#xff0c;哈嘍&#xff0c;小伙伴們大家好。我是#張億&#xff0c;今天吶&#xff0c;學的是代數拓撲學 代數拓撲學是拓撲學中主要依賴 [1]代數工具來解決問題的一個分支。同調與同倫的理論是代數拓撲學的兩大支柱&#xff08;見同調論&#xff0c;同倫論&#xff09;。 …

K8s集群調度續章

目錄 一、污點&#xff08;Taint&#xff09; 1、污點&#xff08;Taint&#xff09; 2、污點組成格式 3、當前taint effect支持如下三個選項&#xff1a; 4、查看node節點上的污點 5、設置污點 6、清除污點 7、示例一 查看pod狀態&#xff0c;模擬驅逐node02上的pod …

NoSQL數據庫技術與應用 教學設計

《NoSQL數據庫技術與應用》 教學設計 課程名稱&#xff1a;NoSQL數據庫技術與應用 授課年級&#xff1a; 20xx年級 授課學期&#xff1a; 20xx學年第一學期 教師姓名&#xff1a; 某某老師 2020年5月6日 課題 名稱 第1章 初識NoSQL 計劃 學時 3 課時 內容 分析 隨著云計算、…

【軟件安裝】office不讓卸載、visio安裝報錯64位等

問題描述 office安裝時報錯&#xff0c;顯示64位、32位不能共存。或者word已經安裝了&#xff0c;再裝visio的時候就顯示報錯。 解決思路 卸載已經安裝的版本重新安裝 遇到的問題 首先是卸載不了&#xff0c;在windows的setting里面&#xff0c;無法卸載&#xff1b;安裝包…

【面試】JDK和JVM是什么關系?

目錄 1. JDK2. JVM3. 關系 1. JDK 1.Java Development Kit&#xff0c;java開發工具包。2.提供了java應用程序開發所需的所有工具和API。3.JDK包含了JRE&#xff08;Java Runtime Environment&#xff09;,即Java運行環境&#xff0c;以及編譯Java源代碼的編譯器&#xff08;j…

消費增值的真面目!綠色積分的合理運用!

各位朋友&#xff0c;大家好&#xff01;我是吳軍&#xff0c;來自一家備受矚目的軟件開發企業&#xff0c;擔任產品經理一職。今天&#xff0c;我非常榮幸能有機會與大家分享一種在市場上備受矚目的新型商業模式——消費增值模式。 隨著環保和可持續發展理念日益深入人心&…

對象解構與迭代器的貓膩?

前言 變量的解構賦值是前端開發中經常用到的一個技巧&#xff0c;比如&#xff1a; // 對象解構 const obj { a: 1, b: 2 }; const { a, b } obj; console.log(a, b)數組解構 const arr [1, 2, 3]; const [a, b] arr; console.log(a, b)工作中我們最經常用的就是類似上面…

輕松拿捏C語言——自定義類型之【結構體】

&#x1f970;歡迎關注 輕松拿捏C語言系列&#xff0c;來和 小哇 一起進步&#xff01;? &#x1f389;創作不易&#xff0c;請多多支持&#x1f389; &#x1f308;感謝大家的閱讀、點贊、收藏和關注&#x1f495; &#x1f339;如有問題&#xff0c;歡迎指正 1. 結構體類型的…

echarts-象形柱圖

象形柱圖 一般的柱圖都是純色柱圖&#xff0c;使用象形柱圖可以給柱圖定義自己的樣式。 樣式的調節與柱圖一樣&#xff0c;核心在于symbol調節柱圖的組成。 let options {tooltip: {},xAxis: {type: "category",data: ["d1", "d2", "d3&qu…

具有固定寬度的盒子:\makebox, \parbox

makebox \makebox 是 LaTeX 中的一個命令&#xff0c;用于創建一個具有固定寬度的盒子&#xff0c;并在該盒子內放置內容。這個命令可以用于控制文本或對象的位置和對齊。 語法如下&#xff1a; \makebox[<width>][<alignment>]{<content>}其中&#xff1…

存儲+調優:存儲-memcached

存儲調優&#xff1a;存儲-memcached 什么是memcached? 高性能的分布式內存緩存服務器。通過緩存數據庫的查詢結果&#xff0c;減少數據庫訪問次數&#xff0c;以提高動態Web應用的速度、提高可擴展性。 在memcached中存什么&#xff1f; 盡快被保存 訪問頻率高 1.數據保…

【CSharp】int類型與IntPtr類型之間的轉換

【CSharp】int類型與IntPtr類型之間的轉換 1.背景2.int轉IntPtr接口3.IntPtr轉int接口4.相互轉化示例1.背景 .NET提供了一個結構體System.IntPtr專門用來代表句柄或指針。 IntPtr 結構,表示一個帶符號整數,其中位寬度與指針相同。 注解 類型 IntPtr 設計為一個整數,其大小…

unity回到低版本報錯解決

用高版本2022打開過后的再回到2020就報了一個錯。 報錯如下&#xff1a; Library\PackageCache\com.unity.ai.navigation1.1.5\Runtime\NavMeshSurface.cs 看了一下是Library&#xff0c;然后我刪除了整個Library文件夾&#xff0c;重啟啟動生成Library&#xff0c;然后還是…