【实战】算法思路总结

面试过程中,总是被拷打,信心都要没了。但是也慢慢摸索出一些思路,希望对大家有帮助。

(需要多用一下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.mzph.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进行某些攻击来绕过密码登录成功 -- …