0


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

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

​ 里面有非常多的题库 跟面经知识 真的非常良心了!!

JZ33 二叉搜索树的后序遍历序列🎈

题目描述🎈

解题思路🎈

**这道题目是输入一个整数数组,判断该数组是不是某二叉搜索树的

后序遍历

的结果。如果是则返回

true

,否则返回

false

。假设输入的数组的任意两个数字都互不相同
这道题就是

中序

后序

遍历满足栈的压入弹出序列关系
如果把中序序列当做栈的压入序列,那么后序序列是该栈的一个弹出序列
而二叉搜索树的

中序

排序数组

**

代码详解🎈

importjava.util.*;publicclassSolution{publicbooleanVerifySquenceOfBST(int[] sequence){int arr[]=sequence.clone();Arrays.sort(arr);returnIsPopOrder(arr,sequence);}booleanIsPopOrder(int[]pushA,int[]popA){if(pushA.length==0|| popA.length==0)returnfalse;Stack<Integer> stack=newStack<>();int popIndex=0;//用于标识弹出的序列的位置for(int x:pushA){
            stack.push(x);//如果栈不为空 并且栈顶元素等于弹出的序列while(stack.size()>0&& stack.peek()== popA[popIndex]){//出栈
                stack.pop();
                popIndex++;}}return stack.empty();}}

在这里插入图片描述

JZ45 把数组排成最小的数🎈

题目描述🎈

在这里插入图片描述

解题思路🎈

**这道题的核心思路 就是

排序

只考虑首字符的

大小

不可靠,但是如果字符串a拼接b的得到的数字大于b拼接a,那么肯定b应该排在a的前面,我们要就按照这样的次序将排序的比较

重载

就可以了
还要特判

空数组

的情况
最后返回的是

字符串

的类型
只考虑首字符的大小不可靠,但是如果字符串

a

拼接

b

的得到的数字大于b拼接a,那么肯定b应该排在a的前面,我们要就按照这样的次序将排序的

比较重载

就可以了。**

代码详解:

importjava.util.*;importjava.util.ArrayList;publicclassSolution{publicStringPrintMinNumber(int[] numbers){int len=numbers.length;//特判空数组的情况if(numbers==null|| numbers.length==0)return"";String[]str=newString[len];for(int i=0;i<len;i++){
            str[i]=numbers[i]+"";}Arrays.sort(str,newComparator<String>(){publicintcompare(String s1,String s2){return(s1+s2).compareTo(s2+s1);}});StringBuilder res=newStringBuilder();//字符串叠加for(int i=0;i<str.length;i++){
            res.append(str[i]);}return res.toString();}}

在这里插入图片描述

​​
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么注册其来吧👉👉 牛客网

标签: 面试 算法

本文转载自: https://blog.csdn.net/weixin_59796310/article/details/126577843
版权归原作者 学好c语言的小王同学 所有, 如有侵权,请联系我们删除。

“牛客刷题&mdash;&mdash;剑指offer(第7期)”的评论:

还没有评论