日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

微软笔试题,机器人消砖块

發布時間:2025/6/17 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软笔试题,机器人消砖块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我比較傻叉,居然忘了用動態規劃做,用了遞歸,各種邊界判斷,而且數組稍大一點就棧溢出。遞歸可以剪支,稍微減少一些遞歸次數。不管怎么樣還是貼上自己的傻叉代碼吧

#include<iostream> using namespace std;const int M = 10;///列 const int N = 10;///行 int min = N+M; char A[N][M]; ///d=1代表向下走,d=0代表向右走 void f(char A[N][M], int i,int j,int d, int result) {if (i == N-1&&j == M-1){if (result < min){min = result;}return;}if (d == 0) ///向右走{if (j + 1 <= M - 1) ///沒走到邊界{if (A[i][j + 1] == 'b') ///下一步是障礙物{f(A, i, j + 1, 0, result + 1); ///清楚障礙物if (i + 1 <= N - 1) ///走下面{if (A[i + 1][j] == '0'){f(A, i + 1, j, 1, result);}else{f(A, i + 1, j, 1, result + 1);}}}else{f(A, i, j + 1, 0, result); ///向右走if (i + 1 <= N - 1) ///向下走{if (A[i + 1][j] == '0'){f(A, i + 1, j, 1, result + 1);}else{f(A, i + 1, j, 1, result + 2);}}}}else ///已經向右行走到邊界{///此處i+1<=N-1,否則應該在遞歸出口f(A, i + 1, j, 1, result);}}else 向下行走{if (i + 1 <= N - 1) ///下邊依舊有路{if (A[i + 1][j] == 'b'){f(A, i + 1, j, 1, result + 1);///向右繼續走if (j + 1 <= M - 1){if (A[i][j + 1] == '0'){f(A, i, j + 1, 0, result);}else{f(A, i, j + 1, 0, result + 1);}}}else {if (j + 1 <= M - 1){if (A[i][j + 1] == '0'){f(A, i, j + 1, 0, result + 1);}else{f(A, i, j + 1, 0, result + 2);}}f(A, i + 1, j, 1, result);}}else ///已經向下行走到邊界{f(A, i, j + 1, 0, result);}} }/* int main() {for (int i = 0; i < N; i++){for (int j = 0; j < M; j++){A[i][j] = '0';}}A[0][4] = 'b';A[0][5] = 'b';A[2][5] = 'b';A[3][3] = 'b';A[3][4] = 'b';A[3][5] = 'b';A[2][6] = 'b';for (int i = 0; i < N; i++){for (int j = 0; j < M; j++){cout << A[i][j] << " ";}cout << endl;}f(A, 0, 0, 0, 0);cout << min << endl; } */

  

轉載于:https://www.cnblogs.com/jinweiseu/p/5372963.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的微软笔试题,机器人消砖块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。