Java每日一练(20230518) 移除元素、跳跃游戏II、复原IP地址

news2024/11/22 21:21:00

目录

1. 移除链表元素  🌟

2. 跳跃游戏 II  🌟🌟

3. 复原 IP 地址  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1
输出:[]

示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

提示:

  • 列表中的节点数目在范围 [0, 10^4] 内
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

出处:

https://edu.csdn.net/practice/28091689

代码:

import java.util.*;
class Solution {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }
    }
    public static ListNode removeElements(ListNode head, int val) {
        ListNode top = new ListNode(0);
        top.next = head;
        ListNode pre = top;
        ListNode temp = head;
        while (temp != null) {
            if (temp.val == val)
                pre.next = temp.next;
            else
                pre = temp;
            temp = temp.next;
        }
        return top.next;
    }
    public static ListNode createLinkedList(int[] nums) {
        if (nums == null || nums.length == 0) {
            return null;
        }
        ListNode head = new ListNode(nums[0]);
        ListNode cur = head;
        for (int i = 1; i < nums.length; i++) {
            cur.next = new ListNode(nums[i]);
            cur = cur.next;
        }
        return head;
    }
    public static void printLinkedList(ListNode head) {
        ListNode cur = head;
        while (cur != null) {
            System.out.print(cur.val + "->");
            cur = cur.next;
        }
        System.out.println("null");
    }
    public static void main(String[] args) {
        int[] nums = {1,2,6,3,4,5,6};
        ListNode head = createLinkedList(nums);
        printLinkedList(head);
        head = removeElements(head, 6);
        printLinkedList(head);
        int[] nums2 = {};
        head = createLinkedList(nums2);
        printLinkedList(head);
        head = removeElements(head, 1);
        printLinkedList(head);
        int[] nums3 = {7,7,7,7};
        head = createLinkedList(nums3);
        printLinkedList(head);
        head = removeElements(head, 7);
        printLinkedList(head);
    }
}

输出:

1->2->6->3->4->5->6->null
1->2->3->4->5->null
null
null
7->7->7->7->null
null


2. 跳跃游戏 II

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

说明:

假设你总是可以到达数组的最后一个位置。

出处:

https://edu.csdn.net/practice/28091690

代码:

import java.util.*;
class jump {
    public static int jump(int[] nums) {
        int end = 0;
        int steps = 0;
        int maxPosition = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            maxPosition = Math.max(maxPosition, i + nums[i]);
            if (i == end) {
                end = maxPosition;
                steps++;
            }
        }
        return steps;
    }
    public static void main(String[] args) {
        int[] nums = {2,3,1,1,4};
        System.out.println(jump(nums));
    }
}

输出:

2


3. 复原 IP 地址

给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。

例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。

示例 1:

输入:s = "25525511135"
输出:["255.255.11.135","255.255.111.35"]

示例 2:

输入:s = "0000"
输出:["0.0.0.0"]

示例 3:

输入:s = "1111"
输出:["1.1.1.1"]

示例 4:

输入:s = "010010"
输出:["0.10.0.10","0.100.1.0"]

示例 5:

输入:s = "101023"
输出:["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]

提示:

  • 0 <= s.length <= 3000
  • s 仅由数字组成

出处:

https://edu.csdn.net/practice/28091691

代码:

import java.util.*;
class restoreIpAddresses {
    private static List<String> res = new ArrayList<>();
    public static List<String> restoreIpAddresses(String s) {
        if (s.length() < 4)
            return res;
        backtrack(s, 0, new StringBuilder(), 0);
        return res;
    }
    private static void backtrack(String s, int start, StringBuilder sb, int pointNumOfSb) {
        if (pointNumOfSb > 4)
            return;
        if (start == s.length() && pointNumOfSb == 4) {
            res.add(sb.toString().substring(1));
            return;
        }
        for (int i = start; i < s.length() && i - start < 3; i++) {
            String x = s.substring(start, i + 1);
            if (x.charAt(0) == '0' && x.length() > 1)
                return;
            if (Integer.parseInt(x) <= 255) {
                sb.append("." + x);
                backtrack(s, i + 1, sb, pointNumOfSb + 1);
                sb.delete(sb.lastIndexOf("."), sb.length());
            }
        }
    }
    public static void main(String[] args) {
        String s = "25525511135";
        System.out.println(restoreIpAddresses(s));
        s = "0000";
        res.clear();
        System.out.println(restoreIpAddresses(s));
        s = "1111";
        res.clear();
        System.out.println(restoreIpAddresses(s));
        s = "010010";
        res.clear();
        System.out.println(restoreIpAddresses(s));
        s = "101023";
        res.clear();
        System.out.println(restoreIpAddresses(s));
    }
}

输出:

[255.255.11.135, 255.255.111.35]
[0.0.0.0]
[1.1.1.1]
[0.10.0.10, 0.100.1.0]
[1.0.10.23, 1.0.102.3, 10.1.0.23, 10.10.2.3, 101.0.2.3]


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/ 

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Mac M2 (arm64架构)上编译安装 GmSSL 工具

GmSSL是一个开源密码工具包&#xff0c;为GM/T系列标准中规定的中国国家密码算法和协议提供一级支持。作为OpenSSL项目的一个分支&#xff0c;GmSSL提供了与OpenSSL的API级兼容性&#xff0c;并维护了所有功能。现有的项目&#xff0c;如ApacheWeb服务器&#xff0c;只需稍加修…

前端面试题整理3

目录 1.不使用promise怎么实现一个异步编程? 2.this的指向有哪些&#xff1f; 3.Ref和reactive响应式的区别&#xff1f; 4.首屏加载优化。如何处理&#xff1f; 5.axios封装&#xff1f; 6.css为什么使用预处理&#xff1f; 7.从1000-9999里面取出AAAA这种数字&#xf…

从价格战中突围,仅10个月开发出一款车,安全性能靠谱吗?

经历了2023年初的价格战&#xff0c;一场关于智能汽车的淘汰赛似乎正式开始了。 尽管“降价热潮”还在继续&#xff0c;但简单的价格竞争毕竟非长久良策。 一方面&#xff0c;为了维持收益&#xff0c;部分车企通过减配、降低服务成本&#xff0c;甚至将降本压力给到上游供应…

【这个命令的 7 种用法!你确定不会用?】

可以很肯定地说&#xff0c;find 命令是 Linux 后台开发人员必须熟知的操作之一&#xff0c;除非您使用的是 Windows Server。 对于技术面试&#xff0c;它也是一个热门话题。让我们看一道真题&#xff1a; 如果你的 Linux 服务器上有一个名为 logs 的目录&#xff0c;如何删…

Spring 事务和事务传播机制

1.什么是事务&#xff08;为什么要有事务&#xff09; 事务就是将一组操作封装成一个执行单元&#xff08;封装到一起&#xff09;&#xff0c;要么一起成功&#xff0c;要么一起失败。 在打账的情景上&#xff0c;A向B转账200 元&#xff0c;A的账户-200.B的账号200&#xff…

基于直流微电网的光伏并网功率转换装置设计与运行仿真

摘要 微电网是目前国内外应用较为广泛的一种绿色可再生能源&#xff0c;近几年我国微电网产业的发展十分迅速。然后&#xff0c;越来越多的微电网系统建立并网&#xff0c;微电网产生的电能受外界因素影响较大&#xff0c;具有一定的随机性和波动性&#xff0c;给并网后的电力系…

SaaS 产品如何选择设计协作工具?

文章内容转载腾讯 CoDesign 随着互联网及其衍生技术的发展&#xff0c;企业比以往更依赖内容去吸引、去培养自己的用户&#xff0c;寻求转化。小鹅通就是在微信生态中帮助企业通过知识服务去实现内容分发和流量聚合&#xff0c;帮助企业沉淀用户&#xff0c;提供深度私域运营服…

回收站清空了怎么找回文件?3种办法恢复彻底删除文件!

电脑回收站大家都有一定的了解&#xff0c;只要在回收站的文件没有被删除的时候是可以还原的&#xff0c;但是回收站删除了&#xff0c;文件就无法直接恢复。回收站清空了怎么找回文件? 别着急&#xff0c;今天小编就分析几种恢复回收站删除数据的办法&#xff1a; 方法一&am…

(转载)从0开始学matlab(第8天)—matlab画图入门

1.基本画图方式 MATLAB 的扩展性和机制独立的画图功能是一个极其重要的功能.这个功能使数据画图变得十分简单 . 画一个数据图 , 首先要创建两个向量&#xff0c;由 x, y 构成 , 然后使用 plot 函数. 例如 , 假设我们要画出函数 yx -10x10 的图象 , 定义域为&#xff3b; …

分享两组不同的3D VR卡片

最近某音上出现了很多VR视频&#xff0c;转动手机可以看到手机界面未显示出来的场景。这种事情我觉得我们也可以做到。 所以两种不同的3D VR卡片来了&#xff1a; 第一种是横向或上下可以拖动极大的距离。卡片上的信息会随着拖动移动&#xff0c;但不会显示更多的信息&#x…

二、LLC 谐振变换器

半桥 LLC 谐振变换器主电路结构 如图所示&#xff0c;半桥 LLC 谐振变换器主电路可以分为四个部分&#xff0c;即&#xff1a;逆变网络、谐振网络、变压器及整流滤波网络。两个 MOSFET&#xff08;S1、S2&#xff09;以及它们的体二极管&#xff08;D1、D2&#xff09;和寄生电…

svn清理以下路径失败显示乱码问题

报错&#xff1a; svn作为我们经常使用的版本管理服务器&#xff0c;在使用过程中经常需要通过clean up操作来完成本地文件与服务器文件信息及版本信息同步&#xff0c; 然而有时右键会在执行清理命令时提示“清理以下路径失败&#xff1a; xxx 文件名、目录名或卷标语法不…

DevOps 的道术法器,探寻 DevOps “立体化”实践之旅

​引言 随着业务的发展&#xff0c;软件发布迭代的频率越来越高&#xff0c;传统的瀑布型模式已经不能满足快速交付的需求&#xff0c;DevOps 也因此受到持续关注。越来越多的公司开始接受并尝试使用 DevOps&#xff0c;期望能使得软件开发中的构建、测试与发布工作变得更加快捷…

进程与线程的理解

目录 一、进程 1、进程的简介&#xff1a; 2、进程的组成&#xff1a; 3、进程的状态 4、进程控制&#xff1a; 5、进程的创建&#xff1a; 6、进程的终止 7、进程的阻塞和唤醒 8、进程上下文切换 二、线程 1、线程&#xff1a; 2、线程的优缺点&#xff1a; 三、进程与线程 比…

火山引擎 DataLeap:3 步打造“指标管理”体系,幸福里数据中心是这么做的

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 一家企业&#xff0c;为什么要搭建指标体系&#xff1f; 一句话总结来说&#xff0c;全面、合理的指标体系可以帮助企业统一目标&#xff0c;将业务环节量化&#…

1073. 负二进制数相加(leetcode,模拟,数学分析)-------------------c++实现

1073. 负二进制数相加&#xff08;leetcode,模拟,数学分析&#xff09;-------------------c实现 题目表述 给出基数为 -2 的两个数 arr1 和 arr2&#xff0c;返回两数相加的结果。 数字以 数组形式 给出&#xff1a;数组由若干 0 和 1 组成&#xff0c;按最高有效位到最低有…

Kubernetes1.26.3 高可用集群

Kubernetes1.26.3 高可用集群 0、服务器信息 服务器为腾讯云服务器&#xff08;按需计费&#xff0c;按流量计费&#xff0c;并且将IP转换为弹性IP&#xff0c;使用结束可关机仅收取硬盘等固定资源费用&#xff09; 服务器名称IP描述组件信息Kubernetes1124.223.218.159maste…

Matlab如何调用外部函数/工具包,如何将新函数加到默认函数库中

自从开始制作、分享工具包&#xff0c;我被问到最多的一个问题是&#xff1a; “XXX工具包怎么用&#xff1f;” 而我给出的回答通常是&#xff1a; “放在你代码文件夹&#xff0c;当函数调用。” 什么意思呢&#xff1f; 方法1 比如在名为“1”的文件夹中放着我们想要运…

TreeSet源码分析

概述 TreeSet &#xff0c;基于 TreeSet 的 Set 实现类。在业务中&#xff0c;如果我们有排重 排序的需求&#xff0c;一般会考虑使用 TreeSet #TreeSet的继承关系 TreeSet的内部属性 m 的 key &#xff0c;存储 HashSet 的每个 key 。 map 的 value &#xff0c;因为 TreeSe…

DJ5-3 多路访问链路和协议

目录 一、网络链路 二、广播信道要解决问题 三、多路访问协议 1、基本介绍 2、多路访问协议的类型&#xff08;3&#xff09; 四、信道划分协议 1、时分多路访问 TDMA 2、频分多路访问 FDMA 3、码分多路访问 CDMA&#xff08;略&#xff09; 五、随机访问协议 1、纯…