第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將數(shù)組拆分為兩個(gè)相等的子數(shù)組,其中選擇了索引

將數(shù)組拆分為兩個(gè)相等的子數(shù)組,其中選擇了索引

慕姐4208626 2023-04-13 15:30:35
我需要返回元素的索引,其中左側(cè)元素的總和等于右側(cè)元素的總和。例如,對(duì)于數(shù)組 [-3, 8, 3, 1, 1, 3],返回值是索引 2,因?yàn)榍?3 ([-3, 8]) 左邊元素的總和與其右側(cè)元素的總和 ([1, 1, 3])。因此,我首先執(zhí)行線性搜索功能來(lái)查找預(yù)期的索引,然后我嘗試將數(shù)組左右拆分為所選索引,但沒(méi)有成功我沒(méi)有成功讓它工作//linear-search portion,x is the index selected to be split pointpublic static int findindex(int arr[], int x) {//if array is null  if (arr == null) {        return -1;    }//find array lengthint len = arr.length;int i = 0;//traverse the arraywhile (i < len) {//if the i-th element is is x then return the index    if (arr[i] == x) {        return i;    } else {        i = i + 1;    }}//splint array portion,returns index if not possibleint leftsum = 0;//treverse array elementsfor (int i = 0; i < x; i++) {//adds current elements to left    leftsum += arr[i];//find sum of remader the array elements to rightsum    int rightsum = 0;    for (int j = i + 1; j < x; J++)        rightsum += arr[j];//split pint index    if (leftsum == rightsum)        return i + 1;}//if not possible returnreturn -1;}// driver codepublic static void main(String[] args) {    int[] array1 = { -3, 8, 3, 1, 1, 3 };    System.out.println(findindex(array1));}
查看完整描述

2 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用以下代碼來(lái)解決問(wèn)題


static void Main(string[] args)

        {

            int[] array1 = {-3, 8, 3, 1, 1, 3}; // { -3, 8, 3, 1, 1, 3, 6, 1, 19 };

            int indexPosition = GetIndex(array1);

            if (indexPosition != -1)

            {

                Console.WriteLine(indexPosition);

            }

        }


        static int GetIndex(int[] param)

        {

            if (param.Length < 0) return -1;

            int leftSum = 0, rightSum = 0; int rightIndex = param.Length - 1;

            for (int i = 0; i < param.Length; i++)

            {

                if (i < rightIndex)

                {

                    if (leftSum > rightSum)

                    {

                        rightSum += param[rightIndex];

                        rightIndex -= 1;

                    }

                    else

                    {

                        if (i < rightIndex)

                        {

                            leftSum += param[i];

                        }

                    }

                }

                else

                {

                    rightSum += param[rightIndex]; // if you are looking for only index position you can comment this line,

                    //variable rightSum and leftSum will give you the sum of left and right side of the array

                    rightIndex -= 1;

                    break;

                }

            }


            return rightIndex;

        }

希望這可以幫助 。


查看完整回答
反對(duì) 回復(fù) 2023-04-13
?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

您的代碼有兩個(gè)問(wèn)題。一是變量i在同一個(gè)方法中被定義了兩次。另一個(gè)問(wèn)題是您只提供一個(gè)輸入?yún)?shù)而不是兩個(gè)。我什至不知道 x 應(yīng)該是什么參數(shù),因此也從我的改進(jìn)版本中刪除了它。我還刪除了 while 循環(huán),因?yàn)槲也幻靼啄阍谀抢镌噲D做什么。無(wú)論如何,這是我的代碼版本:


public static int findindex(int arr[]) {

    if (arr == null) {

        return -1;

    }


    int len = arr.length;

    int leftsum = 0;

    for(int i = 0; i < len; i++)

    {

        leftsum += arr[i];

        int rightsum = 0;

        for(int j = i+2; j < len; j++)

            rightsum += arr[j];

        if(leftsum == rightsum)

            return i+1;

    }

    return -1;

}


public static void main(String[] args) {

    int[] array1 = {-3, 8, 3, 1, 1, 3};

    System.out.println(findindex(array1));

}

當(dāng)我從你的代碼中刪除所有不必要的東西時(shí),唯一的錯(cuò)誤是你應(yīng)該用 i+2 初始化 j,因?yàn)槿绻依斫饽愕囊?,你不想在索引本身和右?cè)包含元素正確編碼。


查看完整回答
反對(duì) 回復(fù) 2023-04-13
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)