【實戰】算法思路總結

面試過程中,總是被拷打,信心都要沒了。但是也慢慢摸索出一些思路,希望對大家有幫助。

(需要多用一下ACM模式,力扣模式提供好了模板,自己在IDEA里面寫的話,還是會有些陌生)

0、基本Java類型

1、用雙指針思路去解決鏈表問題

定義一個單鏈表

class ListNode{

? ? ? ? int val;

? ? ? ? ListNode next;

? ? ? ? ListNode(int x){

? ? ? ? ? ? ? ? val = x;

? ? ? ? ? ? ? ? next = null;

????????}

}

力扣21 - 合并兩個有序鏈表

/**

public class ListNode {

????????int val;

????????ListNode next;

????????ListNode() {

????????}

????????ListNode(int val) {

???????????????? this.val = val;

????????}

????????ListNode(int val, ListNode next) {

???????????????? this.val = val; this.next = next;

????????}

}

?*/

class Solution {

? ? public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

? ? ? ? //虛擬頭結點

? ? ? ? ListNode dummy = new ListNode(-1), p = dummy;

? ? ? ? ListNode p1 = list1 ,p2 = list2;

? ? ? ? while(p1 != null && p2 != null){

? ? ? ? ? ? ? ? //比較p1和p2兩個指針,把值較小的節點接到p指針

? ? ? ? ? ? if( p1.val > p2.val){

? ? ? ? ? ? p.next = p2;

? ? ? ? ? ? p2 = p2.next;

? ? ? ? }else{

? ? ? ? ? ? p.next = p1;

? ? ? ? ? ? p1 = p1.next;

? ? ? ? }

? ? ? ? p = p.next;

? ? ? ? }

? ? ? ? if(p1 != null){

? ? ? ? ? ? p.next = p1;

? ? ? ? }

? ? ? ? if(p2 != null){

? ? ? ? ? ? p.next = p2;

? ? ? ? }

? ? ? ? return dummy.next;

? ? }

}

力扣19 - 刪除倒數第k個節點

/**

?* Definition for singly-linked list.

?* public class ListNode {

?* ? ? int val;

?* ? ? ListNode next;

?* ? ? ListNode() {}

?* ? ? ListNode(int val) { this.val = val; }

?* ? ? ListNode(int val, ListNode next) { this.val = val; this.next = next; }

?* }

?*/

class Solution {

? ? public ListNode removeNthFromEnd(ListNode head, int n) {

? ? ? ? ListNode dummy = new ListNode(-1);

? ? ? ? dummy.next = head;

? ? ? ? ListNode x = findFromEnd(dummy, n+1);

? ? ? ? x.next = x.next.next;

? ? ? ? return dummy.next;

? ? }

? ? private ListNode findFromEnd(ListNode head, int k) {

? ? ? ? ListNode p1 = head;

? ? ? ? for (int i = 0; i< k; i++){

? ? ? ? ? ? p1 = p1.next;

? ? ? ? }

? ? ? ? ListNode p2 = head;

? ? ? ? while( p1 != null){

? ? ? ? ? ? p2 = p2.next;

? ? ? ? ? ? p1 = p1.next;

? ? ? ? }

? ? ? ? return p2;

? ? }

}

未完待續。。。。

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

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

相關文章

僵尸進程111

Linux 系統中的進程可能處于如下狀態中的一種&#xff1a; D 不可中斷的休眠 I 空閑 R 運行中 S 休眠 T 被調度信號終止 t 被調試器終止 Z 僵尸狀態 Interruptible Sleep&#xff0c;可中斷睡眠&#xff0c;在 ps 命令中顯示 S。處在這種睡眠狀態的進程是可以通過給它…

OC中Block為什么不能為nil

在 Objective-C 中&#xff0c;向 nil 對象發送消息是完全有效的&#xff0c;這是因為 Objective-C 運行時對 nil 消息發送進行了特別的處理。當你向 nil 對象發送消息時&#xff0c;消息會被靜默地忽略&#xff0c;不執行任何操作&#xff0c;也不會返回任何值&#xff08;或者…

Unity Editor 找物體助手

找啊找朋友~ &#x1f371;功能介紹&#x1f959;使用方法 &#x1f371;功能介紹 &#x1f4a1;輸入相關字符串&#xff0c;它會幫你找到名稱中帶有該字符串的所有物體&#xff0c;還會找包含該字符串的Text、TextMeshProUGUI。 &#x1f959;使用方法 &#x1f4a1;導入插…

小學拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 僅保留漢字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符數為偶數&#xff0c;則在中間添加空格if len(cleaned_text) % 2 0:middle_index le…

【北京迅為】《iTOP-3588從零搭建ubuntu環境手冊》-第5章 安裝SSH

RK3588是一款低功耗、高性能的處理器&#xff0c;適用于基于arm的PC和Edge計算設備、個人移動互聯網設備等數字多媒體應用&#xff0c;RK3588支持8K視頻編解碼&#xff0c;內置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800萬像素ISP&…

從0開始學python(七)

目錄 前言 1 break、continue和pass函數 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 總結 前言 上一篇文章我們介紹了python中的循環結構&#xff0c;包括for和while的使用。本章接著往下講。…

騰訊云服務器之ssh遠程連接登錄及轉發映射端口實現內網穿透(實現服務器訪問本地電腦端口)

目錄 一、創建密鑰綁定實例二、設置私鑰權限三、ssh遠程連接到服務器四、修改root密碼五、端口轉發&#xff08;實現服務器訪問本地電腦的端口&#xff09; 一、創建密鑰綁定實例 創建密鑰會自動下載一個私鑰&#xff0c;把這個私鑰復制到c盤 二、設置私鑰權限 1、刪除所有用戶…

免費剪輯的素材資源網站,超高清、可商用、不限速、無版權,迅速有效的解決您的視頻剪輯難題!

在數字媒體時代&#xff0c;高質量的剪輯素材已成為視頻制作的核心資源。下面為您推薦的優質視頻剪輯素材網站&#xff0c;都提供超高清、無限速、無版權、可商用的素材&#xff0c;這些網站將大大提升您的視頻制作效率和質量 01. 蛙學府 實用性&#xff1a;★★★★☆ 豐富性&…

您真的會高效使用 Mac 嗎?

文章目錄 屏幕的保養快捷鍵預覽修改文件名查看文件屬性搜索編輯復制&#xff0c;粘貼&#xff0c;剪切&#xff0c;撤銷刪除 跳轉窗口屏幕截圖聲音Dock強制退出查字典神奇的Option鍵鼠標與觸控板切換桌面與應用程序打開通知中心打開Mission Control 安裝與卸載Mac應用程序壓縮和…

記一些CISP-PTE題目解析

0x01 命令執行 直接payload: 127.0.0.1 & whoami&#xff0c;發現可以成功執行whoami命令 然后ls …/ &#xff0c;發現有個key.php文件 嘗試用cat命令查看 發現不行被攔截了。&#xff08;其實題目過濾了常用的查看文件的命令 &#xff09; 這里有兩種思路&#xff0c;第…

關于一致性,你該知道的事兒(下)

關于一致性&#xff0c;你該知道的事兒&#xff08;下&#xff09; 前言一、并發修改單個對象1.1 原子寫操作1.2 顯示加鎖1.3 原子的TestAndSet1.4 版本號機制 二、 多個相關對象的一致性2.1 最大努力實現2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事務 三、…

HNCTF-PWN

1.ez_pwn 直接看危險函數&#xff0c;不能溢出&#xff0c;只能覆蓋ebp。 后面緊接的又是leave,ret 很明顯是棧遷移&#xff0c;通過printf打印出ebp&#xff0c;通過偏移計算出棧地址。 通過gdb調試&#xff0c;偏移是0x38 以下是payload&#xff1a; from pwn import * #i…

python常用內置對象

1.字符串與字節串 對str 類型調用其encode()方法進行編碼得到byte字符串&#xff0c; 對byte字節串調用其encode&#xff08;&#xff09;方法并指定正確的編碼格式得到str字符串 “房地產”&#xff0c;encode("utf-8") #對中文進行編碼-.decode("u…

【自然語言處理】【大模型】DeepSeek-V2論文解析

論文地址&#xff1a;https://arxiv.org/pdf/2405.04434 相關博客 【自然語言處理】【大模型】DeepSeek-V2論文解析 【自然語言處理】【大模型】BitNet&#xff1a;用1-bit Transformer訓練LLM 【自然語言處理】BitNet b1.58&#xff1a;1bit LLM時代 【自然語言處理】【長文本…

11.偏向鎖原理及其實戰

文章目錄 偏向鎖原理及其實戰1.偏向鎖原理2.偏向鎖案例代碼演示2.1.偏向鎖案例代碼2.2.1.無鎖情況下狀態2.1.2.偏向鎖狀態2.1.3.釋放鎖后的狀態 2.2.偏向鎖的膨脹和撤銷2.2.1.偏向鎖撤銷的條件2.2.2.偏向鎖的撤銷 2.2.3.偏向鎖的膨脹 2.3.全局安全點原理和偏向鎖撤銷性能問題2.…

面試題-實例

1.什么是線程池&#xff1f; 線程池就是事先將創建好的線程進行整合&#xff0c;當需要使用的時候&#xff0c;直接拿出來進行使用&#xff0c;不用現去創建&#xff0c;可以節約開辟的時間&#xff0c;提高效率。 2.線程池有哪些種類&#xff1f; 在java.util.concurrent.Ex…

EPAI手繪建模APP工程圖頂部工具欄

7、工程圖 圖 302 工程圖 工程圖包括頂部常用工具欄、右側工程圖工具欄、左側模型列表欄、中間的工程圖。 (1) 常用工具欄 ① 刪除&#xff0c;選中場景中工程圖元素后&#xff0c;刪除。可以選擇多個工程圖元素同時刪除。 ② 設置&#xff0c;打開工程圖設置頁面&#xff0…

Java基礎(29)表達式語言(EL)的隱式對象及其作用

表達式語言&#xff08;Expression Language&#xff0c;簡稱EL&#xff09;是JSP 2.0及以上版本中引入的一種簡化頁面代碼編寫的語言&#xff0c;它提供了一種在JSP頁面中更容易使用JavaBean屬性及集合的方式。EL主要用于簡化對Java代碼的調用&#xff0c;特別是從后端到前端的…

2024 年最新本地、云服務器安裝部署 miniconda 環境詳細教程(更新中)

Anaconda 概述 Anaconda 是專門為了方便使用 Python 進行數據科學研究而建立的一組軟件包&#xff0c;涵蓋了數據科學領域常見的 Python 庫&#xff0c;并且自帶了專門用來解決軟件環境依賴問題的 conda 包管理系統。主要是提供了包管理與環境管理的功能&#xff0c;可以很方便…

picoCTF-Web Exploitation-More SQLi

Description Can you find the flag on this website. Additional details will be available after launching your challenge instance. Hints SQLiLite 先隨便輸入個賬號密碼登錄一下&#xff0c;得到查詢SQL&#xff0c;接下來應該對SQL進行某些攻擊來繞過密碼登錄成功 -- …