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

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

邢臺(tái)做網(wǎng)站優(yōu)化百度排名優(yōu)化軟件

邢臺(tái)做網(wǎng)站優(yōu)化,百度排名優(yōu)化軟件,洛陽網(wǎng)站建設(shè)漢獅報(bào)價(jià),網(wǎng)站滾動(dòng)圖片代碼題目部分 題目尋找最大價(jià)值的礦堆難度難題目說明給你一個(gè)由 0(空地)、1(銀礦)、2(金礦)組成的的地圖,礦堆只能由上下左右相鄰的金礦或銀礦連接形成。超出地圖范圍可以認(rèn)為是空地。 假設(shè)銀礦價(jià)值…

題目部分

題目尋找最大價(jià)值的礦堆
難度
題目說明給你一個(gè)由 '0'(空地)、'1'(銀礦)、'2'(金礦)組成的的地圖,礦堆只能由上下左右相鄰的金礦或銀礦連接形成。超出地圖范圍可以認(rèn)為是空地。
假設(shè)銀礦價(jià)值 1 ,金礦價(jià)值 2 ,請你找出地圖中最大價(jià)值的礦堆并輸出該礦堆的價(jià)值。
輸入描述

地圖元素信息如:
4 5
22220
00000
00000
01111

?

4 表示輸入數(shù)據(jù)為 4 行, 5 表示輸入數(shù)據(jù)為 5 列;
地圖范圍最大為 300 * 300;
0 <= 地圖元素 <= 2。

輸出描述礦堆的最大價(jià)值。
補(bǔ)充說明
------------------------------------------------------
示例
示例1
輸入4 5
22220
00000
00000
01111
輸出8
說明
示例2
輸入4 5
22220
00020
00010
01111
輸出15
說明
示例2
輸入4 5
20000
00020
00000
00111
輸出3
說明


解讀與分析

題目解讀

如果兩個(gè)格子的的關(guān)系為上、下、左、右中的一種情況,且兩個(gè)格子的數(shù)據(jù)不為 0,那么認(rèn)為這兩個(gè)格子是相鄰。如果三個(gè)格子 A、B、C 中 A 與 B 相鄰,B 與 C 相鄰,那么 A、B、C 放到一個(gè)集合中。這樣的集合可能有多個(gè),計(jì)算這些集合中所有格子的數(shù)據(jù)之和,并輸出數(shù)據(jù)之和最大的一個(gè)。

分析與思路

分析與思路此題和《華為OD機(jī)考算法題:機(jī)器人活動(dòng)區(qū)域》類似。

遍歷所有的格子:
1.?在遍歷過程中,新建一個(gè)集合setGrid1,把這個(gè)格子放到 setGrid1 中,求出當(dāng)前格子的所有相鄰格子,并依據(jù)相鄰格子求出更多的相鄰格子,直到所有的相鄰格子求出。將得到的相鄰格子放到集合 setGrid1 中,計(jì)算集合中所有格子的數(shù)據(jù)之和,設(shè)為 sum1;
2. 繼續(xù)遍歷下個(gè)格子,如果下一個(gè)格子不在任何一個(gè)集合中,則表示這個(gè)格子尚未使用過。如果已經(jīng)使用,則繼續(xù)遍歷下一個(gè)擱置;如果未使用,
新建一個(gè)集合setGridn,把它放到 setGridn 中,并繼續(xù)步驟 1 的操作。
3. 最后,比較所有集合的數(shù)據(jù)之和大小,sum1、sum2 …… sumn,輸出最大的值。


代碼實(shí)現(xiàn)

Java代碼

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;/*** 尋找最大價(jià)值的礦堆* * @since 2023.10.25* @version 0.1* @author Frank**/
public class MaxMineValue {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();String[] inputStr = input.split(" ");int row = Integer.parseInt(inputStr[0]);int column = Integer.parseInt(inputStr[1]);int[][] mineMap = new int[row][column];for (int i = 0; i < row; i++) {input = sc.nextLine();// inputStr.length == columnint[] eachColumn = new int[column];for (int j = 0; j < input.length(); j++) {eachColumn[j] = Integer.parseInt(input.substring(j, j + 1));}mineMap[i] = eachColumn;}processMaxMineValue(mineMap);}}private static void processMaxMineValue(int[][] mineMap) {List minSetList = new ArrayList<Set<String>>();Set<String> usedPoint = new HashSet<String>();int maxSum = 0;for (int i = 0; i < mineMap.length; i++) {for (int j = 0; j < mineMap[0].length; j++) {String pos = i + " " + j;if (usedPoint.contains(pos)) {continue;}Set<String> newSet = new HashSet<String>();usedPoint.add(pos);newSet.add(pos);int sum = mineMap[i][j];sum += getAdjacentGridsSum(i, j, usedPoint, newSet, mineMap);if (sum > maxSum) {maxSum = sum;}minSetList.add(newSet);}}System.out.println(maxSum);}private static int getAdjacentGridsSum(int i, int j, Set<String> usedPoint, Set<String> newSet, int[][] mineMap) {int[][] possiblePoint = { { i, j - 1 }, { i, j + 1 }, { i + 1, j }, { i - 1, j } };int sum = 0;for (int k = 0; k < possiblePoint.length; k++) {int[] currentPoint = possiblePoint[k];if (currentPoint[0] < 0 || currentPoint[1] < 0 || currentPoint[0] >= mineMap.length|| currentPoint[1] >= mineMap[0].length) {continue;}String pos = currentPoint[0] + " " + currentPoint[1];if (usedPoint.contains(pos)) {continue;}if (mineMap[currentPoint[0]][currentPoint[1]] == 0) {continue;}usedPoint.add(pos);newSet.add(pos);sum += mineMap[currentPoint[0]][currentPoint[1]];sum += getAdjacentGridsSum(currentPoint[0], currentPoint[1], usedPoint, newSet, mineMap);}return sum;}}

在以上算法中,使用了?minSetList 記錄每個(gè)礦堆的坐標(biāo)集合,在實(shí)際計(jì)算時(shí),不要求輸出礦堆坐標(biāo),所以 minSetList?是可以省掉的。

JavaScript代碼

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function() {while (line = await readline()) {var inputArr = line.split(" ");var row = parseInt(inputArr[0]);var column = parseInt(inputArr[1]);var mineMap = new Array();for (var i = 0; i < row; i++) {line = await readline();var eachContent = new Array();for (var j = 0; j < column; j++) {eachContent[j] = line.substring(j, j + 1);}mineMap[i] = eachContent;}processMaxMineValue(mineMap);}
}();function processMaxMineValue(mineMap) {var minSetList = new Array();var usedPoint = new Set();var maxSum = 0;for (var i = 0; i < mineMap.length; i++) {for (var j = 0; j < mineMap[0].length; j++) {var pos = i + " " + j;if (usedPoint.has(pos)) {continue;}var newSet = new Set();usedPoint.add(pos);newSet.add(pos);var sum = parseInt( mineMap[i][j] );sum += getAdjacentGridsSum(i, j, usedPoint, newSet, mineMap);if (sum > maxSum) {maxSum = sum;}minSetList.push(newSet);}}console.log( maxSum );
}function getAdjacentGridsSum(i, j, usedPoint, newSet, mineMap) {var possiblePoint = [[i, j - 1],[i, j + 1],[i + 1, j],[i - 1, j]];var sum = 0;for (var k = 0; k < possiblePoint.length; k++) {var currentPoint = possiblePoint[k];if (currentPoint[0] < 0 || currentPoint[1] < 0 || currentPoint[0] >= mineMap.length ||currentPoint[1] >= mineMap[0].length) {continue;}var pos = currentPoint[0] + " " + currentPoint[1];if (usedPoint.has(pos)) {continue;}var curValue = parseInt( mineMap[currentPoint[0]][currentPoint[1]] );if ( curValue == 0) {continue;}usedPoint.add(pos);newSet.add(pos);sum += curValue;sum += getAdjacentGridsSum(currentPoint[0], currentPoint[1], usedPoint, newSet, mineMap);}return sum;
}

(完)

http://aloenet.com.cn/news/34942.html

相關(guān)文章:

  • 淮北做網(wǎng)站的公司百度seo優(yōu)化服務(wù)項(xiàng)目
  • 滎陽網(wǎng)站建設(shè)公司網(wǎng)絡(luò)關(guān)鍵詞優(yōu)化軟件
  • 便宜做網(wǎng)站seo算法優(yōu)化
  • 佛山正規(guī)網(wǎng)站建設(shè)報(bào)價(jià)優(yōu)化大師app下載安裝
  • 口碑好網(wǎng)站建設(shè)公司seo關(guān)鍵詞優(yōu)化平臺(tái)
  • 不同網(wǎng)站對商家做o2o的政策阿里seo排名優(yōu)化軟件
  • 湖南教育平臺(tái)網(wǎng)站建設(shè)流量寶
  • 梧州專業(yè)網(wǎng)站推廣官方百度平臺(tái)
  • 做外貿(mào)的網(wǎng)站主要有哪些內(nèi)容網(wǎng)站分析培訓(xùn)班
  • 智慧團(tuán)建登錄入口官網(wǎng)排名輕松seo 網(wǎng)站推廣
  • 家政公司網(wǎng)站建設(shè)方案軟文營銷ppt
  • 做網(wǎng)站可以用什么軟件目前病毒的最新情況
  • 中國做美國網(wǎng)站的翻譯兼職百度推廣投訴電話客服24小時(shí)
  • 幫非法集資公司做網(wǎng)站違法嗎南京網(wǎng)絡(luò)優(yōu)化公司有哪些
  • 國外網(wǎng)站推廣公司棗莊網(wǎng)絡(luò)推廣seo
  • 新手學(xué)wordpress武漢網(wǎng)站seo德升
  • 注冊一個(gè)做網(wǎng)站的公司好自媒體怎么入門
  • 網(wǎng)易工作做網(wǎng)站工資獎(jiǎng)金高嗎上海關(guān)鍵詞排名優(yōu)化公司
  • 做阿里巴巴網(wǎng)站口碑seo技術(shù)培訓(xùn)教程
  • 有沒有做羞羞的網(wǎng)站seo排名軟件哪個(gè)好用
  • 動(dòng)易網(wǎng)站模板2022最新時(shí)事新聞及點(diǎn)評
  • 怎樣進(jìn)入建設(shè)通網(wǎng)站外鏈推廣是什么意思
  • 網(wǎng)站運(yùn)營怎樣做網(wǎng)站建設(shè)方案模板
  • 公司制做網(wǎng)站蘭州seo推廣
  • 我要建立自己的網(wǎng)站百度關(guān)鍵詞排名優(yōu)化工具
  • 在百度上怎么建網(wǎng)站模板網(wǎng)站
  • wordpress 詞庫肇慶seo排名外包
  • 做旅游門票網(wǎng)站需要什么材料seo推廣教學(xué)
  • 桂林建站網(wǎng)站seo關(guān)鍵詞優(yōu)化技巧
  • win7 iis網(wǎng)站設(shè)置百度下載官網(wǎng)