1.1 題目描述
1.2 解題思路
先統計出1-n中有多少個質數,得到質數個數\(x\),剩下的數\(y = n - x\);
使用排列組合公式得出結果
\(a_x^x a_y^y\)
1.3 解題**
private static final long inf = 1000000007;
public int numprimearrangements(int n)
for (int i = 1; i <= other; i++)
return (int) res;
}/**
* 判斷n個數中有多少個質數
** @param n
* @return
*/private int countprime(int n)
}return count;
}/**
* 判斷是否是質數
** @param n
* @return
*/private boolean isprime(int n)
for (int i = 2; i <= math.sqrt(n); i++)
}return true;
}
2.1 題目描述
2.2 解題思路
非常簡單的一道題,理解清楚題意就好。只要是連續的k天,都可以。
2.3 解題**
public class solution
for (int j = 0; j < k; j++)
if (sum > upper)
if (sum < lower)
}return res;}}
3.1 題目描述
3.2 解題思路
注意審題,可以對子串進行重新排序。
思路1:所有可以統計子串中字元出現的次數。(超時)
思路2:使用動態規劃的思想,定義dict[n][t],dict[3][4]表示從第0個字元,到第3個字元的子串,第5個字元e的個數。(超時)
思路3:使用位運算的思想,只關心每個字元是奇數或偶數,定義dict[n],表示0-n的子字串的異或運算結果。
例如:abc的位異或運算結果為1+2+4 = 7。
abca = 1+2+4 -1 = 2+4 = 6
公式為
bitarray[i] = 1 << (strdict[i] - 'a');
if (i > 0)
最後統計子字串異或結果中1的個數。
公式為
while (sum != 0)
3.3 解題**
思路1:下面的提交,會提示超時。
public class solution
return res;
}private boolean isalindrome(string str, int len, int k)
if (len == 1 || len / 2 <= k)
int z = new int[26];
for (int i = 0; i < len; i++)
int diff = 0;
for (int i = 0; i < 26; i++)
}if (diff / 2 <= k)
return false;}}
思路2:提交仍然會超時
public class solution2
dict[i][strdict[i] - 'a']++;
}for (int i = 0; i < queries.length; i++)
} else }}
res.add(diff / 2 <= k);
}return res;}}
思路3:可以ac
public class solution3
}for (int i = 0; i < queries.length; i++) else
//計算子串的位中有多少個1
int count = 0;
//k <= count/2 等價於 2*k + 1 <= count
leetcode 第132場周賽
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2輸出 true解釋 愛...
leetcode周賽 第176場
題目描述 給你乙個 m n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。請你統計並返回 grid 中 負數 的數目。示例 1 輸入 grid 4,3,2,1 3,2,1,1 1,1,1,2 1,1,2,3 輸出 8 解釋 矩陣中共有 8 個負數。示例 2 輸入 grid 3...
leetcode 第 180 場周賽
大佬都是3 5分鐘一題,而我10分鐘一題,最後一題還不會。qaq 5356.矩陣中的幸運數 給你乙個m n的矩陣,矩陣中的數字各不相同。請你按任意順序返回矩陣中的所有幸運數。幸運數是指矩陣中滿足同時下列兩個條件的元素 class solution object def luckynumbers se...