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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript動態(tài)編程表,在某些情況下無法像Python中那樣索引2D數(shù)組?

Javascript動態(tài)編程表,在某些情況下無法像Python中那樣索引2D數(shù)組?

皈依舞 2023-06-29 21:13:22
實際上這里的邏輯是錯誤的。我使用 Python3 和一個字典解決了這個問題,該字典更新了看到字母的最后一個索引。在動態(tài)規(guī)劃術語中,它類似于 LIS(最長遞增子序列)。如果有人知道如何在不使用字典的情況下解決這個問題,請發(fā)表評論,因為我在學校學過DP,這些課程只使用了數(shù)組,所以只用數(shù)組就可以了。原問題:我正在嘗試 Leetcode,3. 沒有重復字符的最長子串。我可以用 Python 制作一個用于動態(tài)編程的二維表來解決這個問題。但在我不太熟悉的 JavaScript 中,我遇到了錯誤。evalmachine.<anonymous>:41                var top = T[i-1][j]                                ^TypeError: Cannot read property '1' of undefined    at lengthOfLongestSubstring (evalmachine.<anonymous>:4我的代碼:/** * @param {string} s * @return {number} */var lengthOfLongestSubstring = function(s) {    //empty string    if (s.length <= 0){        return 0    }    //initialize dict    var dict = {};    //initialize 2D table T    var T = new Array(s.length)    for (var i = 0; i<s.length; i++){        T[i] = new Array(s.length);    }        //base cases are diagonals    for (var i = 0; i < T.length; i++){        for (var j=0; j<T.length; j++){            if(i==j){                T[i][j] = 1;            }            else{                T[i][j] = 0;            }        }    }    //put base case in dict    //dict[s[0]]=1    for (var i=0; i < s.length; i++){        for (var j=i+1; j<s.length; j++){            var row_char = s.charAt(i);            var col_char = s.charAt(j);            if (row_char==col_char){                T[i][j] = 1;            }            else{                //console.log("j",j,T)                var left = T[i][j-1]                console.log(left)                var top = T[i-1][j]                 console.log(top)                var bigger = Math.max(left,top);                T[i][j] = bigger + 1            }        }    }    //iterate each row to get max    var high = Number.MIN_SAFE_INTEGER;        for (var i = 0; i < s.length; i++){        if(T[i][s.length-1] > high){            high = T[i][s.length-1];        }     }        return high;    };它讓我用 0 和 1 索引的基本情況填充表T[i][j],但然后抱怨這樣的索引以獲得我不理解的值。我看了這個:How to get value at a certain index of array In JavaScript? 但它實際上并沒有說什么不同。
查看完整描述

1 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

在循環(huán)的第一次迭代中,//put base case in dict注釋i0。

然后您嘗試訪問T[i-1][j],這相當于T[-1][j].

因為T沒有-1索引,所以T[-1]解析為undefined,您嘗試訪問索引時[j]會收到所看到的錯誤。


查看完整回答
反對 回復 2023-06-29
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號