地上有一個m行和n列的方格。一個機器人從坐標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行坐標和列坐標的數位之和大於k的格子。 例如,當k為18時,機器人能夠進入方格(35,37),因為3+5+3+7 = 18。但是,它不能進入方格(35,38),因為3+5+3+8 = 19。請問該機器人能夠達到多少個格子?


public class Solution {
    public int movingCount(int threshold, int rows, int cols)
    {
        if(threshold < 0 || rows < 0 || cols < 0){
            return 0;
        }
       
        boolean[] visited = new boolean[rows*cols];
       // for(int row = 0; row < rows; row++){
        //    for(int col = 0; col < cols; col++){
        //        if( movingCountCore(threshold,row,rows,,col,cols,visited)){
        //            
        //        }
       //     }
       // }
        
        int count = movingCountCore(threshold,0,rows,0,cols,visited);
        return count;
    }
   
    public static int movingCountCore(int threshold, int row,int rows, int col, int cols,boolean[] visited){
        
        int res = 0;
        if(row>=0 && row<rows && col>=0 && col<cols && visited[row*cols+col]==false){
            if(splitNum(row) + splitNum(col) <= threshold){
                visited[row*cols+col]=true;
                res = 1+movingCountCore(threshold,row+1,rows, col,cols,visited)
                    +movingCountCore(threshold,row-1,rows, col,cols,visited)
                    +movingCountCore(threshold,row,rows, col+1,cols,visited)
                    +movingCountCore(threshold,row,rows, col-1,cols,visited);
            }
            
        }
        return res;
        
    }
    public static int splitNum(int number){
        int sum = 0;
        while(number >0){
            sum+=number%10;
            number =  number/10;
        }
        return sum;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 地上有一個m行和n列的方格。一個機器人從坐標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行坐標和列坐標的數位之和大於k的格子。 例如,當k為18時,機器人能夠進入方格(35,37),因為3+5+3+7 = 18。但是,它不能進入方格(35,38),因為3+5+3+8 = 19。請問該機器人能夠達到多少個格子? 工業機器人_建立工具坐標和工具坐標 【排列組合】給定一個M*N的格子或棋盤,從左下角走到右上角的走法總數(每次只能向右或向上移動一個方格邊長的距離) halcon坐標轉換(機器人坐標轉換用) Leetcode練習(Python) :數組類:第62題:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問總共有多少條不同的路徑? 不同路徑(一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問總共有多少條不同的路徑?) 機器人關節(Joint)之間的坐標變換(Transform) ROS 機器人技術 - 廣播與接收 TF 坐標 Leetcode練習(Python):數組類:第63題:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑? 不同路徑II(一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑?網格中的障礙物和空位置分別用 1 和 0 來表示。)
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM