当前位置: 首页 > news >正文

为了之后找工作不被虐,每天刷3道《剑指offer》Day-1

本文已收录于专栏
🌻
《刷题笔记》

文章目录

  • 前言
  • 💖 1、二维数组中的查找
    • 题目描述
    • 思路
  • 💖 2、替换空格
    • 题目描述
    • 思路
  • 💖 3、从尾到头打印链表
    • 题目描述
    • 思路一(反转函数)
    • 思路二(递归)
    • 思路二(栈)

前言

题目来源参考阿秀学长的刷题笔记,小戴只是把 C++的题解改成了 Java版本,并整理了其他思路,便于自己的学习~

如果解题有更好的方法,本文也会及时进行更新~

希望对你有帮助~ 一起加油哇~

💖 1、二维数组中的查找

牛客网原题链接

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数

[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]

给定 target = 7,返回 true

给定 target = 3,返回 false

思路

从右上角度往左下角不断查找,

如果右上角值比 target 小,就往下走,值比 taget 大,就往右走,值相等的话,返回 true,依次类推…

如果到了左下角,还没有找到和 tatget 相等的值,就返回 false~

public class Solution {public boolean Find(int target, int [][] array) {if(array.length==0 || array[0].length==0){return false;}int row = array.length; // 行int col = array[0].length; // 列int i = 0; // 行int j = col - 1; // 列while(i<row && j>=0){if(array[i][j] < target){i++;}else if(array[i][j] > target){j--;}else{return true;}}return false;}
}

💖 2、替换空格

牛客原题链接

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy

思路

新建一个 StringBuilder 动态字符串数组存放替换之后的字符串,

遍历 str , 如果 字符为空格,采用 StringBuilder 中的 append 方法在动态字符串数组中添加 %20 ,否则添加原字符

public class Solution {public String replaceSpace(StringBuffer str) {StringBuilder newStr = new StringBuilder();for(int i=0; i<str.length(); i++){char c = str.charAt(i);if(c == ' '){newStr.append("%20");}else{newStr.append(c);}}return newStr.toString();}
}

💖 3、从尾到头打印链表

牛客原题链接

题目描述

输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)

思路一(反转函数)

新建一个 ArrayList ,遍历链表,从前往后保存每个节点的值到数组,

最后 反转函数reverse() 将数组反转

import java.util.*;
public class Solution {public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> list = new ArrayList();ListNode temp = listNode;while(temp != null){list.add(temp.val);temp = temp.next;}Collections.reverse(list); // 直接翻转链表return list;}
}

思路二(递归)

从表头开始往后递归进入每一个节点,遇到尾节点后开始返回,每次返回依次添加一个值进入输出数组,直到递归返回表头

import java.util.ArrayList;
public class Solution {//递归函数public void recursion(ListNode head, ArrayList<Integer> res){ if(head != null){//先往链表深处遍历recursion(head.next, res); //再填充到数组就是逆序res.add(head.val); }}public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> res = new ArrayList<Integer>();//递归函数解决recursion(listNode, res);return res;}
}

思路二(栈)

顺序遍历链表,将链表的值push到栈中

然后再依次弹出栈中的元素,加入到数组中,即可实现链表逆序

import java.util.*;
public class Solution {public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> arr = new ArrayList<Integer>();Stack<Integer> s = new Stack<Integer>();while(listNode!=null){s.push(listNode.val);listNode = listNode.next;}while(!s.isEmpty()){arr.add(s.pop());}return arr;}
}

相关文章:

为了之后找工作不被虐,每天刷3道《剑指offer》Day-1

本文已收录于专栏&#x1f33b;《刷题笔记》文章目录前言&#x1f496; 1、二维数组中的查找题目描述思路&#x1f496; 2、替换空格题目描述思路&#x1f496; 3、从尾到头打印链表题目描述思路一&#xff08;反转函数&#xff09;思路二&#xff08;递归&#xff09;思路二&a…...

Linux-磁盘管理介绍

Linux-磁盘管理介绍 计算硬盘介绍 硬盘是计算机主要存储媒介之一&#xff0c;由一个或者多个铝制或者玻璃制的碟片组成&#xff0c;碟片外覆盖有铁磁性材料&#xff0c;硬盘内部由磁道、柱面、扇区、磁头等部件组成; cylinder&#xff1a;柱面sector&#xff1a;扇区 磁道与…...

爬虫架构(一):爬虫中的去重处理

目录一、概要二、去重应用场景以及基本原理2.1 爬虫中什么业务需要使用去重2.2 去重实现的基本原理2.3 根据原始数据进行去重判断2.4 根据原始数据的特征值进行去重判断2.5 临时去重容器与持久化去重容器2.6 常用几种特殊的原始数据特征值计算三、基于信息摘要算法的去重3.1 信…...

算法刷题总结 (二) 回溯与深广搜算法

算法总结2 回溯与深广搜算法一、理解回溯算法1.1、回溯的概念1.2、回溯法的效率1.3、回溯法问题分类1.4、回溯法的做题步骤二、经典问题2.1、组合问题2.1.1、77. 组合 - 值不重复2.1.2、216.组合总和III - 值不重复且等于目标值2.1.3、17. 电话号码的字母组合 - 双层回溯2.1.4、…...

Linux 总结9个最危险的命令,一定要牢记在心!

rm -rf 命令 该命令可能导致不可恢复的系统崩坏。 rm -rf / #强制删除根目录下所有东西。 rm -rf * #强制删除当前目录的所有文件。 rm -rf . #强制删除当前文件夹及其子文件夹。 执行rm -rf 一定要想半天,搞明白自己在干什么. fork 炸弹 &#x1f626;) { &#x1f610;:&am…...

spring cloud

spring cloud 分享 springboot&#xff1a;可以说是spring cloud的基础&#xff0c;是springMVC框架的简化&#xff0c;约定大于配置&#xff08;在使用上、非功能上的简化&#xff09; 可以说每个MPO Digital api就是springboot project(springboot项目) spring cloud&#xf…...

【9】核心易中期刊推荐——图像视觉与图形可视化

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...

0108Bean销毁-Bean生命周期详解-spring

Bean使用阶段&#xff0c;调用getBean()得到bean之后&#xff0c;根据需要&#xff0c;自行使用。 1 销毁Bean的几种方式 调用org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#destroyBean调用org.springframework.beans.factory.config.Conf…...

微信小程序可以进行dom操作吗?

小程序不能使用各种浏览器暴露出来的 DOM API&#xff0c;进行 DOM 选中和操作 原因&#xff1a;在小程序中&#xff0c;渲染层和逻辑层是分开的&#xff0c;分别运行在不同的线程中&#xff0c;逻辑层运行在 JSCore 中&#xff0c;并没有一个完整浏览器对象&#xff0c;因而缺…...

昇腾AI深耕沽上:港口辐射力之后,天津再添基础创新辐射力

作者 | 曾响铃 文 | 响铃说 AI计算正在以新基建联动产业集群的方式&#xff0c;加速落地。 不久前&#xff0c;天津市人工智能计算中心正式揭牌&#xff0c;该中心整体规划300P算力&#xff0c;2022年底首批100P算力上线投入运营&#xff0c;并实现上线即满载。 这是昇腾AI…...

基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)

摘要&#xff1a;基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片、视频和实时视频中的疲劳行为&#xff0c;识别其闭眼、打哈欠等结果并记录和保存&#xff0c;以防止交通事故发生。本文详细介绍疲劳驾驶检测系统实现原理的同时&#xff0c;给出Python的实现代…...

【Linux】-- 进程优先级和环境变量

目录 进程的优先级 基本概念 如何查看优先级 PRI与NI NI值的设置范围 NI值如何修改 修改方式一 &#xff1a; 通过top指令修改优先级 修改方式二 &#xff1a; 通过renice指令修改优先级 进程的四个重要概念 环境变量 基本概念 常见的环境变量 查看环境变量 三种…...

iOS 紧急通知

一般通知 关于通知的各种配置和开发&#xff0c;可以参考推送通知教程&#xff1a;入门 – Kodeco&#xff0c;具有详细步骤。 紧急通知表现 紧急通知不受免打扰模式和静音模式约束。当紧急通知到达时&#xff0c;会有短暂提示音量和抖动&#xff08;约2s&#xff09;。未锁…...

即时零售:不可逆的进化

“人们经常问我&#xff0c;这个世界还是平的吗&#xff1f;我经常跟他们说&#xff0c;亲爱的&#xff0c;它真的是平的&#xff0c;比以前更平了。”2021年3月&#xff0c;《世界是平的》作者托马斯弗里德曼在演讲时说。如他所说&#xff0c;尽管逆全球化趋势加剧&#xff0c…...

零售数据总结经验:找好关键分析指标和维度

各位数据的朋友&#xff0c;大家好&#xff0c;我是老周道数据&#xff0c;和你一起&#xff0c;用常人思维数据分析&#xff0c;通过数据讲故事。 每逢月末、季末、年终&#xff0c;运营部门的同事又要开始进行年终总结分析。那么&#xff0c;对零售连锁企业来说&#xff0c;…...

从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构

目录引言技术选型正文创建基础架构IDEA创建项目添加Netty监听端口编写客户端进行测试总结引言 由于现在java web太卷了&#xff0c;所以各位同行可以考虑换一个赛道&#xff0c;做游戏还是很开心的。 本篇教程给新人用于学习游戏服务器的基本知识&#xff0c;给新人们一些学习…...

C++中那些你不知道的未定义行为

引子 开篇我们先看一个非常有趣的引子&#xff1a; // test.cpp int f(long *a, int *b) {*b 5;*a 1;return *b; }int main() {int x 10;int *p &x;auto q (long *)&x;auto ret f(q, p);std::cout << x << std::endl;std::cout << ret <&…...

java基础面试题(四)

Mysql索引的基本原理 索引是用来快速寻找特定的记录&#xff1b;把无序的数据变成有序的查询把创建索引的列数据进行排序对排序结果生成倒排表在倒排表的内容上拼接上地址链在查询时&#xff0c;先拿到倒排表内容&#xff0c;再取出地址链&#xff0c;最后拿到数据聚簇索引和非…...

@PropertySource使用场景

文章目录一、简单介绍二、注解说明1. 注解源码① PropertySource注解② PropertySources注解2. 注解使用场景3. 使用案例&#xff08;1&#xff09;新增test.properties文件&#xff08;2&#xff09;新增PropertySourceConfig类&#xff08;3&#xff09;新增PropertySourceTe…...

【C语言进阶:刨根究底字符串函数】strtok strerror函数

本节重点内容&#xff1a; 深入理解strtok函数的使用深入理解strerror函数的使用⚡strtok Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part ofstr1sep参数是个字符串&#xff0c;定义了用作分隔符的字符集合。第一个参数指…...

终极分屏神器Nucleus Co-Op:一台电脑实现4人同时开黑完整指南

终极分屏神器Nucleus Co-Op&#xff1a;一台电脑实现4人同时开黑完整指南 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾因朋友聚会时电脑…...

Seraphine:三步打造你的英雄联盟智能BP助手

Seraphine&#xff1a;三步打造你的英雄联盟智能BP助手 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine是一款基于英雄联盟官方LCU API开发的智能辅助工具&#xff0c;通过自动化BP流程和实时数据查…...

下载 | Win11 官方精简版,系统占用空间极少!(4月末更新、Win11 IoT物联网 LTSC版、适合老电脑安装使用)

⏩ 【资源A023】Win11 LTSC 2024 ISO系统映像 &#x1f536;Win11 物联网IoT LTSC版&#xff0c;默认无TPM等硬件限制&#xff0c;更方便老电脑安装使用。LTSC是长期服务渠道版本&#xff0c;网友俗称“老坛酸菜版”&#xff0c;相当于微软官方的精简版Win11&#xff0c;精简了…...

AI原生转型生死线(2026奇点大会闭门报告首次公开)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生转型生死线&#xff08;2026奇点大会闭门报告首次公开&#xff09; 2026年奇点大会闭门报告显示&#xff1a;企业若未在2025年底前完成AI原生架构重构&#xff0c;其核心系统迭代效率将平均下降4…...

CANN/GE图引擎Profiling初始化接口

aclgrphProfInit 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlo…...

【C++笔记】-- 七种排序流食般讲解

1.排序的概念&#xff1a;所谓的排序就是对于一组记录&#xff0c;按照某个或者某些关键字&#xff0c;递增或递减的排序这些记录。2.排序的分类&#xff1a;此文章将会介绍四类排序。一、插入排序&#xff1a;直接插入排序、希尔排序。二、选择排序&#xff1a;选择排序、堆排…...

8.4.3 开始屏幕和任务栏的优化:StartAllBack 找回高效 Windows 11 使用体验

&#x1f525; 个人主页&#xff1a; 杨利杰YJlio ❄️ 个人专栏&#xff1a; 《Sysinternals实战教程》 《Windows PowerShell 实战》 《WINDOWS教程》 《IOS教程》 《微信助手》 《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》 &#x1f31f; 让…...

告别明文传输:手把手教你为open62541 OPC UA服务器配置OpenSSL加密(附证书生成避坑指南)

工业物联网安全实战&#xff1a;基于open62541与OpenSSL构建OPC UA加密通信体系 在工业控制系统与物联网设备的数据交互中&#xff0c;明文传输就像在公共场所用明信片传递商业机密。想象一下工厂里的PLC控制器将生产参数以原始文本形式发送到SCADA系统&#xff0c;或者智能传感…...

系统设计:布隆过滤器

原文&#xff1a;towardsdatascience.com/system-design-bloom-filter-a2e19dcd4810 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/350b777cef6f9090c441e88a64b5066c.png 简介 哈希表是最广为人知和使用的几种数据结构之一。通过明智…...

如何为Python项目配置Taotoken的OpenAI兼容API并快速调用大模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何为Python项目配置Taotoken的OpenAI兼容API并快速调用大模型 对于希望快速集成大模型能力的Python开发者而言&#xff0c;Taoto…...