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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

分割数组(将数组三等分)

發(fā)布時(shí)間:2023/11/28 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分割数组(将数组三等分) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)單面試題——分割數(shù)組
時(shí)間復(fù)雜度O(n)

//輸入:一個(gè)自然數(shù)數(shù)組,選取其中2個(gè)數(shù)字num[i], num[j], 把數(shù)組三分,
//    每一部分的累加和(不包括分割點(diǎn)的數(shù)字)相等。
//    例:nums[] = [2,1,3,1,1,1,5,3],選取nums[2] = 3, num[6] = 5,
//       三部分的和都是3. 則打印輸出2, 6,
//    如果找不到符合條件的等分點(diǎn),返回失敗。(數(shù)組大小的量級(jí)最大是10^5)public class DivideArray
{/*** 1、頭指針從下標(biāo)1開(kāi)始,尾指針從倒數(shù)第二個(gè)元素開(kāi)始* 2、計(jì)算前后指針?lè)指铋_(kāi)的兩塊數(shù)組元素是否相等,小的一邊向中間進(jìn)位,直至相等。* 3、然后計(jì)算中間區(qū)間的元素和是否與兩邊的元素和相等。* 4、若中間元素和大于兩邊元素和,則繼續(xù)移動(dòng)指針;若小于則直接返回false* @param inputArray* @return*/public static boolean Div2Three(int[] inputArray){if(inputArray == null || inputArray.length < 5){return false;}int arrayLength = inputArray.length;int startIndex = 1;int endIndex = inputArray.length - 2;int startSum = inputArray[0];int endSum = inputArray[arrayLength-1];int allSum = 0;for (int i = 0; i < arrayLength; i++){allSum += inputArray[i];}while (startIndex < endIndex - 1){if(startSum == endSum) {int midSum = allSum - 2 * startSum - inputArray[startIndex] - inputArray[endIndex];if (midSum < endSum){return false;}else if (midSum > endSum){startIndex++;endIndex--;}else{System.out.println("下標(biāo)1:" + startIndex + "   ,下標(biāo)2:" + endIndex);return true;}}else if(endSum < startSum){endSum += inputArray[endIndex];endIndex--;}else{startSum += inputArray[startIndex];startIndex++;}}//若最終未找到對(duì)應(yīng)的下標(biāo),則返回falsereturn false;}public static void main(String[] args){int[] inputArray = {2, 1, 3, 1, 1, 1, 5, 3};boolean isSuccess = Div2Three(inputArray);if (isSuccess){System.out.println("congratulations!");return;}System.out.println("what a pity!");}}

總結(jié)

以上是生活随笔為你收集整理的分割数组(将数组三等分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。