星子網(wǎng)今天最新新聞北京百度推廣排名優(yōu)化
插: 前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網(wǎng)站。
堅持不懈,越努力越幸運,大家一起學習鴨~~~
題目:
給你一個下標從 0 開始的字符串數(shù)組 words ,其中 words[i] 要么是一個字符串形式的正整數(shù),要么是字符串 “prev” 。
我們從數(shù)組的開頭開始遍歷,對于 words 中的每個 “prev” 字符串,找到 words 中的 上一個遍歷的整數(shù) ,定義如下:
k 表示到當前位置為止的連續(xù) “prev” 字符串數(shù)目(包含當前字符串),令下標從 0 開始的 整數(shù) 數(shù)組 nums 表示目前為止遍歷過的所有整數(shù),同時用 nums_reverse 表示 nums 反轉得到的數(shù)組,那么當前 “prev” 對應的 上一個遍歷的整數(shù) 是 nums_reverse 數(shù)組中下標為 (k - 1) 的整數(shù)。
如果 k 比目前為止遍歷過的整數(shù)數(shù)目 更多 ,那么上一個遍歷的整數(shù)為 -1 。
請你返回一個整數(shù)數(shù)組,包含所有上一個遍歷的整數(shù)。
示例 1:
輸入:words = [“1”,“2”,“prev”,“prev”,“prev”]
輸出:[2,1,-1]
解釋:
對于下標為 2 處的 “prev” ,上一個遍歷的整數(shù)是 2 ,因為連續(xù) “prev” 數(shù)目為 1 ,同時在數(shù)組 reverse_nums 中,第一個元素是 2 。
對于下標為 3 處的 “prev” ,上一個遍歷的整數(shù)是 1 ,因為連續(xù) “prev” 數(shù)目為 2 ,同時在數(shù)組 reverse_nums 中,第二個元素是 1 。
對于下標為 4 處的 “prev” ,上一個遍歷的整數(shù)是 -1 ,因為連續(xù) “prev” 數(shù)目為 3 ,但總共只遍歷過 2 個整數(shù)。
示例 2:
輸入:words = [“1”,“prev”,“2”,“prev”,“prev”]
輸出:[1,2,1]
解釋:
對于下標為 1 處的 “prev” ,上一個遍歷的整數(shù)是 1 。
對于下標為 3 處的 “prev” ,上一個遍歷的整數(shù)是 2 。
對于下標為 4 處的 “prev” ,上一個遍歷的整數(shù)是 1 ,因為連續(xù) “prev” 數(shù)目為 2 ,同時在數(shù)組 reverse_nums 中,第二個元素是 1 。
提示:
1 <= words.length <= 100
words[i] == “prev” 或 1 <= int(words[i]) <= 100
java代碼:
// https://space.bilibili.com/206214
class Solution {public List<Integer> lastVisitedIntegers(List<String> words) {List<Integer> ans = new ArrayList<>();List<Integer> a = new ArrayList<>();int k = 0;for (String s : words) {if (s.charAt(0) != 'p') { // 不是 preva.add(Integer.parseInt(s));k = 0;} else {ans.add(++k > a.size() ? -1 : a.get(a.size() - k)); // 倒數(shù)第 k 個}}return ans;}
}