牛客刷题——剑指offer(第三期)

简介: 牛客刷题——剑指offer(第三期)

JZ9 用两个栈实现队列🍔

JZ9 用两个栈实现队列

题目描述🍔

1ef3518c95ff48c29a4c6fb6e035691d.png

解题思路🍔

借助栈的先进后出规则模拟实现队列的先进先出


1、当插入时,直接插入 stack1

2、当弹出时,当 stack2 不为空,弹出 stack2 栈顶元素,如果 stack2 为空,将 stack1 中的全部数逐个出栈入栈 stack2,再弹出 stack2 栈顶元素


代码详解🍔

import java.util.*;
import java.util.Stack;
public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    public void push(int node) {
        stack1.push(node);
    }
    public int pop() {
        if(stack1.empty()&&stack2.empty()){
            return -1;
        }
        if(stack2.empty()){
            while(!stack1.empty()){
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}


JZ14 剪绳子🍔

JZ14 剪绳子

题目描述🍔

f736d5aa7f1d41e3a5412ab88b20f60a.png

解题思路🍔

  • 当n<3时 直接计算即可
  • 用dp数组表示长度为i的绳子可以被剪出来的最大乘积,初始化前面4个的规律很好推出
  • 遍历每个长度,对于每个长度的最大乘积,可以遍历从1到i的每个固定一段,按照上述公式求的最大值。
  • 数组最后一个就是最大值

代码详解🍔

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    public int cutRope (int n) {
        if(n<=3){
            return n-1;
        }
        int dp[]=new int[n+1]; //dp[i]表示长度为i的绳子剪出来的最大乘积
        //初始化 dp 前四段长度的乘积
        dp[1]=1;
        dp[2]=2;
        dp[3]=3;
        dp[4]=4;
        //遍历后面的长度
        for(int i=5;i<=n;i++){
            for(int j=1;j<i;j++){
                dp[i]=Math.max(dp[i],j*dp[i-j]);
            }
        }
            return dp[n];
           // write code here
    }
}     


JZ18 删除链表的节点🍔

JZ18 删除链表的节点

题目描述🍔

26502f0bda2e4a2e97352d7cd7ac8ef3.png

解题思路🍔

既然是整个链表元素都不相同,我们要删除给定的一个元素,那我们首先肯定要找到这个元素,然后考虑删除它。

删除一个链表节点,肯定是断掉它的前一个节点指向它的指针,然后指向它的后一个节点,即越过了需要删除的这个节点。

代码详解🍔

import java.util.*;
/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param val int整型 
     * @return ListNode类
     */
    public ListNode deleteNode (ListNode head, int val) {
        //加入一个虚拟头结点
        ListNode res= new ListNode(0);
        res.next=head;
        //前序节点
        ListNode pre= res;
        ListNode cur =head;
        while(cur!=null){
            //如果找到当前节点
            if(cur.val==val){
                //断开连接
                pre.next=cur.next;
                break;
            }
            pre=cur;
            cur=cur.next;
        }
        //返回删除后链表的头节点
        return res.next;
        // write code here
    }
}




相关文章
|
Kubernetes Java Linux
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
3073 0
|
11月前
|
人工智能 自然语言处理 算法
【AI问爱答-双十一返场周直播】AI产品专家直播解读重点AI应用场景怎么用?
阿里云【AI问爱答】栏目强势回归,11月25日至28日每晚19:00,连续四天直播,涵盖AI营销、企业办公、社交娱乐及大模型推理调优四大主题,助您深入了解AI应用,解决实际问题。欢迎预约观看!
456 12
|
12月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
303 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
11月前
|
人工智能 JSON 自然语言处理
基于文档智能&RAG搭建更懂业务的AI大模型
本文介绍了一种结合文档智能和检索增强生成(RAG)技术,构建强大LLM知识库的方法。通过清洗文档内容、向量化处理和特定Prompt,提供足够的上下文信息,实现对企业级文档的智能问答。文档智能(Document Mind)能够高效解析多种文档格式,确保语义的连贯性和准确性。整个部署过程简单快捷,适合处理复杂的企业文档,提升信息提取和利用效率。
|
人工智能 Linux Docker
一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
154697 30
|
编解码 Android开发 iOS开发
「UCD」移动端UI设计尺寸规范详解
【7月更文挑战第2天】
1724 3
|
JavaScript 前端开发
报错:关于Vue项目下载swiper插件时没有dist文件夹的问题
报错:关于Vue项目下载swiper插件时没有dist文件夹的问题
278 0
|
存储 弹性计算 大数据
阿里云16核32G服务器价格多少?2024年阿里云16核32G云服务器配置价格及测评参考
阿里云16核32G服务器价格多少?给你提供阿里云16核32G云服务器的详细测评。关于2024年阿里云16核32G云服务器的价格:阿里云16核32G云服务器的价格因不同的实例类型和配置选项而有所不同。一般来说,这种高配置的服务器适用于需要处理大规模数据或运行高负载业务的企业级用户。
1767 1
|
存储 关系型数据库 MySQL
Docker Compose部署Mysql8
Docker Compose部署Mysql8
|
机器学习/深度学习 TensorFlow 算法框架/工具
ensorFlow 智能移动项目:6~10(1)
ensorFlow 智能移动项目:6~10(1)
131 0