国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

華為OD機考算法題:阿里巴巴找黃金寶箱(1)

這篇具有很好參考價值的文章主要介紹了華為OD機考算法題:阿里巴巴找黃金寶箱(1)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目部分

題目 阿里巴巴找黃金寶箱(1)
難度
題目說明 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從 0 ~ N 的箱子,每個箱子上面貼有一個數字,箱子中可能有一個黃金寶箱。
黃金寶箱滿足排在它之前的所有箱子數字和等于排在它之后的所有箱子數字之和;第一個箱子左邊部分的數字和定義為0;最后一個箱子右邊部分的數字和定義為0。
請幫阿里巴巴找到黃金寶箱,輸出第一個滿足條件的黃金寶箱編號,如果不存在黃金寶箱,請返回 -1 。
輸入描述 箱子上貼的數字列表,使用逗號分隔,例如 1,-1,0。
寶箱的數量不小于 1 個,不超過 10000。
寶箱上貼的數值范圍不低于 -1000,不超過 1000。
輸出描述 第一個黃金寶箱的編號。
補充說明
------------------------------------------------------
示例
示例1
輸入 2,5,-1,8,6
輸出 3
說明 下標 3 之前的數字之和為: 2 + 5 + (-1) = 6。
下標 3 之后的數字之和為: 6。
示例2
輸入 8,9
輸出 -1
說明 不存在符合要求的位置。
示例2
輸入 11
輸出 0
說明 下標 0 之前的數字之和為: 0。
下標 0 之后的數字之和為: 0。

解讀與分析

題目解讀

一組整型數字,找出一個數字的下標,使其左邊的數字之和等于右邊數字之和。如果找不到輸出 -1。

分析與思路

此題思路比較簡單,先計算所有數字之和,然后從小到大逐個遍歷數字下標。在遍歷過程中,如果下標左邊的數字之和和下標右邊的數字之和相等,則輸出其下標。如果遍歷完后,仍舊找不到,則輸出 -1。

在遍歷過程中,求左右之和時,只需要根據前一個下標的和計算增量即可,不需要全量計算。

在計算過程中,會遍歷 2 次整型數字,第一次求和,第一次尋找符合要求的下標。時間復雜度為 O(n),空間復雜度為 O(n)。


代碼實現

Java代碼

import java.util.Scanner;

/**
 * 阿里巴巴找黃金寶箱(1)
 * @since 2023.10.11
 * @version 0.1
 * @author Frank
 *
 */
public class AlibabaFindGold1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			String input = sc.nextLine();
			String[] strNumber = input.split( "," );
			processAlibabaFindGold1( strNumber );
		}
	}

	private static void processAlibabaFindGold1( String[] strNumber )
	{
		int sum = 0;
		int[] numbers = new int[strNumber.length];
		for( int i = 0; i < strNumber.length; i ++ )
		{
			numbers[i] = Integer.parseInt( strNumber[i] );
			sum += numbers[i];
		}
		
		int leftSum = 0;
		int rightSum = sum;
		for( int i = 0; i < numbers.length; i ++ )
		{
			if( i >= 1 )
			{
				leftSum += numbers[ i - 1 ];
			}			
			rightSum -= numbers[i];
			if( leftSum == rightSum )
			{
				System.out.println( i );
				return;
			}
		}
		System.out.println( -1 );
	}
}

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 strNumber = line.split(",");
        processAlibabaFindGold1(strNumber);
    }
}();

function processAlibabaFindGold1(strNumber) {
    var sum = 0;
    var numbers = new Array( strNumber.length );
    for (var i = 0; i < strNumber.length; i++) {
        numbers[i] = parseInt(strNumber[i]);
        sum += numbers[i];
    }

    var leftSum = 0;
    var rightSum = sum;
    for (var i = 0; i < numbers.length; i++) {
        if (i >= 1) {
            leftSum += numbers[i - 1];
        }
        rightSum -= numbers[i];
        if (leftSum == rightSum) {
            console.log(i);
            return;
        }
    }
    console.log(-1);
}

(完)文章來源地址http://www.zghlxwxcb.cn/news/detail-726664.html

到了這里,關于華為OD機考算法題:阿里巴巴找黃金寶箱(1)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 華為OD機試 - 阿里巴巴找黃金寶箱(IV)(Java & JS & Python)

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0-N的箱子,每個箱子上面有一個數字,箱子排列成一個環(huán),編號最大的箱子的下一個是編號為0的箱子。 請輸出每個箱了貼的數字之后的第一個比它大的數,如果不存在則輸

    2024年02月11日
    瀏覽(21)
  • 華為OD機試 - 阿里巴巴找黃金寶箱(I)(Java & JS & Python)

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0~N的箱子,每個箱子上面貼有一個數字,箱子中可能有一個黃金寶箱。 黃金寶箱滿足排在它之前的所有箱子數字和等于排在它之后的所有箱子數字之和; 第一個箱子左邊部

    2024年02月14日
    瀏覽(24)
  • 華為OD機試 - 阿里巴巴找黃金寶箱(II)(Java & JS & Python)

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0-N的箱子,每個箱子上面貼有箱子中藏有金幣的數量。 從金幣數量中選出一個數字集合,并銷毀貼有這些數字的每個箱子,如果能銷毀一半及以上的箱子,則返回這個數字

    2024年02月13日
    瀏覽(20)
  • 華為OD機試 - 阿里巴巴找黃金寶箱(V)(Java & JS & Python)

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0~N的箱子,每個箱子上面貼有一個數字。 阿里巴巴念出一個咒語數字k(kN),找出連續(xù)k個寶箱數字和的最大值,并輸出該最大值。 輸入描述 第一行輸入一個數字字串,數字之

    2024年02月13日
    瀏覽(20)
  • 華為OD機試 - 阿里巴巴找黃金寶箱(III) (Java & JS & Python)

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0-N的箱子,每個箱子上面貼有一個數字。 阿里巴巴念出一個咒語數字,查看寶箱是否存在兩個不同箱子,這兩個箱子上貼的數字相同,同時這兩個箱了的編號之差的絕對值

    2024年02月14日
    瀏覽(17)
  • 華為od統一考試B卷【阿里巴巴找黃金寶箱(V)】Python 實現

    ?????????所有題目均有五種語言實現。 C實現目錄 、 C++ 實現目錄 、 Python實現目錄 、 Java實現目錄 、 JavaScript實現目錄 貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0-N的箱子,每個箱子上面貼有一個數字. 阿里巴巴念出一個咒

    2024年02月09日
    瀏覽(17)
  • 【華為OD機試python】阿里巴巴找黃金寶箱(V)【2023 B卷|100分】

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地, 藏寶地有編號從0~N的箱子,每個箱子上面貼有一個數字。 阿里巴巴念出一個咒語數字k(kN),找出連續(xù)k個寶箱數字和的最大值, 并輸出該最大值。 輸入描述 第一行輸入一個數字字串,數字

    2024年02月10日
    瀏覽(35)
  • 【華為OD機試python】阿里巴巴找黃金寶箱(IV)【2023 B卷|200分】

    題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地, 藏寶地有編號從0-N的箱子,每個箱子上面有一個數字,箱子排列成一個環(huán), 編號最大的箱子的下一個是編號為0的箱子。 請輸出每個箱子貼的數字之后的第一個比它大的數,如果不存在則

    2024年02月10日
    瀏覽(19)
  • 【華為OD機試真題2023B卷 JAVA&JS】阿里巴巴找黃金寶箱(V)

    知識點數組哈希表滑窗 ?時間限制:1s?空間限制:256MB?限定語言:不限 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0~N的箱子,每個箱子上面貼有一個數字。 阿里巴巴念出一個咒語數字k(kN),找出連續(xù)k個寶箱數字和的最大值,

    2024年02月06日
    瀏覽(22)
  • 【滿分】【華為OD機試真題2023B卷 JAVA&JS】阿里巴巴找黃金寶箱(I)

    知識點數組前綴和整數范圍 ?時間限制:1s?空間限制:256MB?限定語言:不限 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發(fā)現了強盜集團的藏寶地,藏寶地有編號從0~N的箱子,每個箱子上面貼有一個數字,箱子中可能有一個黃金寶箱。 黃金寶箱滿足排在它之前的所有箱

    2024年02月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包