• 牛客刷题篇——剑指offer (第二期)


     💟💟前言

    🥇作者简介:友友们大家好,我是你们的小王同学😗😗

    🥈个人主页:小王同学🚗

    🥉 系列专栏:牛客刷题专栏📖

    📑 推荐一款非常火的面试、刷题神器👉 牛客刷题

    觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐  评论📄

    今天给大家带来的刷题系列是:剑指offer 第二期

     

     

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

    目录

    JZ12 矩阵中的路径🥣

    题目描述🥣

    解题思路🥣

    代码详解🥣

    过辣~ JZ16 数值的整数次方🥣

    题目描述🥣

    解题思路🥣

    代码详解🥣

    JZ40 最小的K个数🥣

    题目描述🥣

    解题思路🥣

    代码详解🥣

    JZ12 矩阵中的路径🥣

    矩阵中的路径_牛客题霸_牛客网 (nowcoder.com)

    题目描述🥣

     

    解题思路🥣

    这道题是一道标准的dfs例题

    通用板子如下!

      if 满足结束条件:
            result.add(路径)
            return
        
        for 选择 in 选择列表:
            做选择
            backtrack(路径, 选择列表)
            撤销选择

    因为是一个二维矩阵 首先两层for循环 遍历全部的点

    接着就是最重要的dfs函数 

    一个点向周围四个地方递归

    递归之后再把当前的坐标复原

    代码详解🥣

    1. import java.util.*;
    2. public class Solution {
    3. /**
    4. * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    5. *
    6. *
    7. * @param matrix char字符型二维数组
    8. * @param word string字符串
    9. * @return bool布尔型
    10. */
    11. public boolean hasPath (char[][] matrix, String word) {
    12. char worlds[]= word.toCharArray();
    13. for(int i=0;i
    14. for( int j=0;j0].length;j++){
    15. if(dfs(matrix,worlds,i,j,0))
    16. return true;
    17. }
    18. }
    19. return false;
    20. // write code here
    21. }
    22. boolean dfs(char[][] matrix,char []world , int i,int j,int index){
    23. //处理边界问题 index表示的是查找到字符串word的第几个字符,
    24. if(i>=matrix.length||i<0||j>=matrix[0].length||j<0||matrix[i][j]!=world[index])
    25. return false;
    26. //如果world 每个字符串都找到了 直接return true
    27. if(index==world.length-1)
    28. return true;
    29. char temp=matrix[i][j]; //把走过的坐标标记下来 最后输出
    30. //修改当前坐标的值
    31. matrix[i][j]=' ';
    32. //从当前坐标的上下左右四个方向去寻找 递归
    33. boolean res=dfs(matrix,world,i+1,j,index+1)|| //向右递归
    34. dfs(matrix,world,i-1,j,index+1)||//向左递归
    35. dfs(matrix,world,i,j-1,index+1)||//向下递归
    36. dfs(matrix,world,i,j+1,index+1);//向上递归
    37. //递归后再把当前坐标复原
    38. matrix[i][j]=temp;
    39. return res;
    40. }

     

    过辣~ 
    JZ16 数值的整数次方🥣

    数值的整数次方_牛客题霸_牛客网 (nowcoder.com)

    题目描述🥣

    解题思路🥣

    • 先处理次方数为负数的情况,将底数化为分数解决。
    • 遍历次方数的次数,不断累乘底数。

    代码详解🥣

    1. import java.util.*;
    2. public class Solution {
    3. public double Power(double base, int exponent) {
    4. //先处理次方数是负数的情况
    5. if(exponent<0){
    6. base=1/base;
    7. exponent=-exponent;
    8. }
    9. double ret=1.0;
    10. for(int i=0;i
    11. ret*=base;
    12. }
    13. return ret;
    14. }
    15. }

     

    一声清脆的声音 过过辣  

    JZ40 最小的K个数🥣

    最小的K个数_牛客题霸_牛客网 (nowcoder.com)

    题目描述🥣

    解题思路🥣

    这道题直接用java 自带的排序函数 Arrays.sort()

    代码详解🥣

    1. import java.util.*;
    2. public class Solution {
    3. public ArrayList GetLeastNumbers_Solution(int [] input, int k) {
    4. ArrayList list =new ArrayList<>();
    5. //特判k=0时 直接返回
    6. if(k==0) return list;
    7. Arrays.sort(input);//将数组从小到大升序排列 去最前面k个即可
    8. for(int i=0;i
    9. list.add(input[i]);
    10. }
    11. return list;
    12. }
    13. }

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么注册起来 跟着王同学一起刷题 进大厂吧!👉👉  牛客刷题库

  • 相关阅读:
    文件操作-
    构建强大的Web应用之Django详解
    Web开发之常用框架BootStrap
    mysql主从复制docker版
    JAVA接入OPC DA2.0引发的问题
    Redis教程(二十二):Redis的过期删除和缓存淘汰策略
    C++的map用法
    RabbitMQ之延迟队列解读
    管理类联考——英语二——阅读篇——题材:教育
    Go之map详解
  • 原文地址:https://blog.csdn.net/weixin_59796310/article/details/125911400