所以据我所知,Java集中不允许重复.为什么然后在这段代码片段中代码似乎试图考虑重复?
public static Subarray findSmallestSubarrayCoveringSet(List<String> paragraph,Set<String> keywords) {
Map<String, Integer> keywordsToCover = new HashMap<>();
for (String keyword : keywords) {
keywordsToCover.put(keyword,
keywordsToCover.containsKey(keyword)? keywordsToCover.get(keyword) + 1: 1);
}
Run Code Online (Sandbox Code Playgroud)
为什么不在for循环中使用keywordsToCover.put(keyword,1)?
所以我有斐波那契序列的代码:
int fibonacci(int i, int[] memo) {
if (i == 0 || i == 1) return i;
if (memo[i] == 0) {
memo[i] = fibonacci(i - 1, memo) + fibonacci(i - 2, memo);
}
return(memo[i]);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:fibonacci(i-1, memo)在fibonacci(i-2, memo)正确评估之前总会进行评估吗?