💟💟前言
🥇作者简介:友友们大家好,我是你们的小王同学😗😗
🥈个人主页:小王同学🚗
🥉 系列专栏:牛客刷题专栏📖
📑 推荐一款非常火的面试、刷题神器👉点击跳转进入网站
觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐ 评论📄
今天给大家带来的刷题系列是:剑指offer



里面有非常多的题库 跟面经知识 真的非常良心了!!
今天给大家带来的是 刷题 剑指offer里的题目
剑指offer里的题目绝大部分都是面试常考题目
所以我们要熟练地刷上几遍

解题思路:
两种方法
1.用线性表把节添加到里面 最后创建一个新的线性表 倒着输出即可
2.栈 的实现 根据栈后进先出的特点!
方法1:
-
- /**
- * public class ListNode {
- * int val;
- * ListNode next = null;
- *
- * ListNode(int val) {
- * this.val = val;
- * }
- * }
- *
- */
- import java.util.ArrayList;
- public class Solution {
- public ArrayList
printListFromTailToHead(ListNode listNode) { - ArrayList
list =new ArrayList<>(); - while(listNode!=null){ //头结点不为空的情况下
- list.add(listNode.val); //把结点的值都添加进list中
- listNode=listNode.next; //往后遍历
- }
- ArrayList
ans =new ArrayList<>(); - int n=list.size();
- for(int i=n-1;i>=0;i--){ //逆序输出
- ans.add(list.get(i));
- }
- return ans;
-
- }
- }

这一声清脆响亮的声音 我直接过辣~~
方法2:
- import java.util.*;
- /**
- * public class ListNode {
- * int val;
- * ListNode next = null;
- *
- * ListNode(int val) {
- * this.val = val;
- * }
- * }
- *
- */
- import java.util.ArrayList;
- public class Solution {
- public ArrayList
printListFromTailToHead(ListNode listNode) { - ArrayList
list= new ArrayList<>(); - Stack
stack =new Stack<>(); - while(listNode!=null){
- stack.push(listNode.val);
- listNode=listNode.next;
- }
- while(!stack.empty()){ //如果栈不为空就打印
- list.add(stack.pop()); //将list添加栈顶元素出站并返回
-
- }
- return list;
-
- }
- }

过~~~~辣~~~

java中字符串本身就是不能修改的 我们可以创建一个StringBuilder对象
对内容进行添加操作
- import java.util.*;
-
-
- public class Solution {
- /**
- * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- *
- *
- * @param s string字符串
- * @return string字符串
- */
- public String replaceSpace (String s) {
- StringBuilder sb= new StringBuilder();
- for(int i=0;i
- char ch=s.charAt(i);
- if(ch==' '){ //遇到空格 就追加%20
- sb.append("%20");
- }else{
- sb.append(ch); //没有就添加遍历的字符
- }
-
-
- }
- return sb.toString(); //返回字符串格式
-
-
-
- // write code here
- }
- }
还可以用java 自带的replaceAll方法更简单!
- import java.util.*;
-
-
- public class Solution {
- /**
- * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- *
- *
- * @param s string字符串
- * @return string字符串
- */
- public String replaceSpace (String s) {
- // write code here
- return s.replaceAll(" ","%20");
- }
- }
过 过 过 辣~~~~
JZ4 二维数组中的查找
题目描述♟:

解题思路:
由于行列递增,可以得出:
a.在一列中的某个数字,其上的数字都比它小
b.在一行中的某个数字,其右的数字都比它大
- public class Solution {
- public boolean Find(int target, int [][] array) {
-
- int n=array.length;
- if(n==0) return false;
- boolean flag=true;
- for(int i=0;i
- for(int j=0;j
- if(array[i][j]==target){ //找到就返回true
- return true;
- }else if(array[i][j]>target) //大于的话 就break
- break;
- else if(array[i][0]>target)
- //如果第一列的元素大于target那么后面不可能找到taget
- flag=false;
-
-
-
- }
- if(!flag) break;
-
-
-
- }
- return false;
- }
- }

过辣~
牛客的oj测试也是非常好用的 还有代码补全功能 acm机制 简直绝绝子!
还等什么 快注册起来跟小王同学一起刷题吧(doge)

-
相关阅读:
聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活
记录一次Powerjob踩的坑(Failed to deserialize message)
软件测试流程
代码可读性,前置检查、注释及总结
SEO的优化教程(百度SEO的介绍和优化)
【LeetCode】【剑指offer】【二叉树的镜像】
深度学习常见损失函数总结+Pytroch实现
Python 遗传算法 Genetic Algorithm
[centos]centos7源码编译cmake报错Could NOT find OpenSSL
mysql问题汇总
-
原文地址:https://blog.csdn.net/weixin_59796310/article/details/125871405