国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站設(shè)計機(jī)構(gòu)文檔在線制作網(wǎng)站免費

網(wǎng)站設(shè)計機(jī)構(gòu)文檔,在線制作網(wǎng)站免費,app推廣專員好做嗎,建設(shè)銀官方網(wǎng)站題目 874. 模擬行走機(jī)器人 分析 這道題就是個簡單的模擬 主要有兩點考察點: 對方向數(shù)組的運用 方向數(shù)組存儲的是各個方向的單位向量,也即: 方向XY向北01向東10向南0-1向西-10 存儲在數(shù)組中,則是方向數(shù)組: in…

題目

874. 模擬行走機(jī)器人
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


分析

這道題就是個簡單的模擬
主要有兩點考察點:

  • 方向數(shù)組的運用
    方向數(shù)組存儲的是各個方向的單位向量,也即:
方向XY
向北01
向東10
向南0-1
向西-10

存儲在數(shù)組中,則是方向數(shù)組:

int[] dx = {0, 1, 0, -1};
int[] dy = {1, 0, -1, 0};

我們很容易發(fā)現(xiàn):

dx[0]  //北方
dx[1]  //東方
dx[2]  //南方
dx[3]  //西方

我們可以使用一個變量j來指示當(dāng)前處于什么方向,j始終只有0、1、2、3這四個取值,指示北、東、南、西四個方向,那么怎么實現(xiàn)j在這三個取值之間來回有序切換呢?
我們可以利用去模運算,假設(shè)我們初始面向北方,即j為0,那么當(dāng)我們想向左轉(zhuǎn)的時候,是面向西方,則j要相應(yīng)的變?yōu)?,這時,我們進(jìn)行的操作是(j-1+4)%4,為什么還要+4呢?因為負(fù)數(shù)對正數(shù)去模,還是負(fù)數(shù),就出了范圍,這里我們通過加上一個模數(shù)4的倍數(shù),來使結(jié)果始終為正數(shù)。
因此,我們總結(jié)轉(zhuǎn)向操作的實現(xiàn):

j = (j-1+4)%4;   // 左轉(zhuǎn)
j = (j+1+4)%4;   // 右轉(zhuǎn)
  • 怎么實現(xiàn)快速判斷當(dāng)前點是否在障礙物點集中
    這里我們可以利用HashSet
    把障礙物點以String字符串的形式存放在HashSet中。
    在Java中,如果您在HashSet中存放字符串,那么每次調(diào)用contains方法,底層判斷兩個字符串相等與否時,調(diào)用的是equals方法而不是==運算符。
    這是因為==運算符比較的是兩個對象的引用地址,即它們是否指向同一個內(nèi)存地址。而String類重寫了equals方法,比較的是兩個字符串的內(nèi)容是否相等,而不是它們的引用地址。

代碼

class Solution {public int robotSim(int[] commands, int[][] obstacles) {// 設(shè)置方向數(shù)組 初始為y軸方向 往大是向右轉(zhuǎn),往小是向左轉(zhuǎn)int[] dx = {0, 1, 0, -1};int[] dy = {1, 0, -1, 0};int cur_x = 0,cur_y = 0; // 當(dāng)前位置 初始為0int max_dis = 0;         // 最大歐氏距離// 創(chuàng)建一個障礙物點集PointSet pointSet = new PointSet(obstacles);int j = 0;  //控制方向   始終在0 1 2 3的范圍內(nèi)for(int i=0;i<commands.length;i++){int op = commands[i];if(op>=1&&op<=9){int[] point = new int[2];  //下一步試探點while(op>0){point[0] = cur_x+dx[j];point[1] = cur_y+dy[j];//試探下一步能不能走if(pointSet.contains(point))   //被建筑物擋住不能走break;else{   //能走,則走,且在走的過程中把最大歐氏距離的平方更新cur_x = cur_x+dx[j];cur_y = cur_y+dy[j];max_dis = Math.max(max_dis,cur_x*cur_x+cur_y*cur_y);}op--;}}else if(op==-2){j = (j-1+4)%4;   // 左轉(zhuǎn)continue;}else if(op==-1){j = (j+1+4)%4;   // 右轉(zhuǎn)continue;}}return max_dis;}
}
//哈希set 高效判斷該點是否存在
public class PointSet {private HashSet<String> pointSet;// 構(gòu)造函數(shù) 參數(shù)是一個二維點集public PointSet(int[][] points) {pointSet = new HashSet<>();// 把點集中的點都加進(jìn)去for (int[] point : points) {pointSet.add(point[0] + "," + point[1]);  //以字符串形式存儲}}public boolean contains(int[] point) {return pointSet.contains(point[0] + "," + point[1]);}
}

http://m.aloenet.com.cn/news/28546.html

相關(guān)文章:

  • 網(wǎng)站做的漂浮為什么不動免費p站推廣網(wǎng)站入口
  • 網(wǎng)站設(shè)計怎么保持風(fēng)格一致視頻廣告接單平臺
  • 網(wǎng)站建設(shè)服務(wù)目標(biāo)全網(wǎng)模板建站系統(tǒng)
  • 邳州網(wǎng)站網(wǎng)站建設(shè)微信小程序開發(fā)費用一覽表
  • 網(wǎng)站模板 家網(wǎng)絡(luò)營銷案例題
  • 做鞋子出口需要作網(wǎng)站嗎網(wǎng)絡(luò)搭建是干什么的
  • 易企秀微網(wǎng)站如何做文字鏈接seo怎么去優(yōu)化
  • 容桂網(wǎng)站制作咨詢企業(yè)查詢官網(wǎng)
  • 手機(jī)端做網(wǎng)站軟件文大俠seo
  • b2c平臺網(wǎng)站建設(shè)比百度好用的搜索軟件手機(jī)版
  • 上傳圖片做網(wǎng)站維護(hù)長春seo網(wǎng)站管理
  • 網(wǎng)站建設(shè)違約責(zé)任今日短新聞20條
  • 做美食推廣的網(wǎng)站朝陽區(qū)搜索優(yōu)化seosem
  • 寧波網(wǎng)站建設(shè)公司軟文范例大全1000字
  • 大連企業(yè)做網(wǎng)站最新軍事新聞 今日 最新消息
  • 婚戀網(wǎng)站女孩子做美容安卓優(yōu)化大師官方版
  • 保定定興網(wǎng)站建設(shè)對百度競價排名的看法
  • 織夢的手機(jī)端網(wǎng)站網(wǎng)站開發(fā)的步驟
  • 食品網(wǎng)站建設(shè)策劃書百度問答庫
  • 網(wǎng)站沒有備案可以做百度推廣嗎最吸引人的引流話術(shù)
  • 青島網(wǎng)站運營推廣關(guān)鍵詞排名方案
  • 合肥建站平臺windows優(yōu)化大師官方免費
  • html網(wǎng)站開發(fā)中的應(yīng)用百度高級搜索
  • 濟(jì)南網(wǎng)站設(shè)計建設(shè)公司百度營銷推廣登錄平臺
  • 建設(shè)資格執(zhí)業(yè)注冊中心網(wǎng)站長沙seo網(wǎng)絡(luò)推廣
  • 網(wǎng)站上的搜索怎么做青島網(wǎng)站快速排名提升
  • 網(wǎng)站建設(shè)周期重慶seo網(wǎng)絡(luò)推廣關(guān)鍵詞
  • swf做網(wǎng)站頭網(wǎng)絡(luò)促銷
  • 知名商城網(wǎng)站建設(shè)公司seo搜狗
  • 東莞設(shè)計網(wǎng)站長沙網(wǎng)站優(yōu)化推廣