💟💟前言
🥇作者简介:友友们大家好,我是你们的小王同学😗😗
🥈个人主页:小王同学🚗
🥉 系列专栏:牛客刷题专栏📖
📑 推荐一款非常火的面试、刷题神器👉 牛客网
觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐ 评论📄
今天给大家带来的刷题系列是:剑指offer
剑指offer 刷题专属链接👉剑指offer
里面有非常多的题库 跟面经知识 真的非常良心了!!
今天给大家带来的是 刷题 剑指offer里的题目
剑指offer里的题目绝大部分都是面试常考题目
所以我们要熟练地刷上几遍
JZ6 从尾到头打印链表🏀
题目描述🥌:
解题思路:
两种方法
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<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list =new ArrayList<>();
while(listNode!=null){ //头结点不为空的情况下
list.add(listNode.val); //把结点的值都添加进list中
listNode=listNode.next; //往后遍历
}
ArrayList <Integer> 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<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list= new ArrayList<>();
Stack<Integer> stack =new Stack<>();
while(listNode!=null){
stack.push(listNode.val);
listNode=listNode.next;
}
while(!stack.empty()){ //如果栈不为空就打印
list.add(stack.pop()); //将list添加栈顶元素出站并返回
}
return list;
}
}
过~~~~辣~~~
JZ5 替换空格🛶
题目描述🥽
解题思路⏳:
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<s.length();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<n;i++){
for(int j=0;j<array[i].length;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)👉👉牛客网