Re: [閒聊] 每日leetcode

作者: sustainer123 (caster)   2025-01-14 19:22:23
※ 引述 《dont (dont)》 之銘言:
:  
: 2657. Find the Prefix Common Array of Two Arrays
:  
: ## 思路
:  
: 掃Array, 把A[i], B[i]的bit設1
: 檢查兩個mask &之後的bits數
:  
: ## Code
:  
: ```cpp
: class Solution {
: public:
: vector<int> findThePrefixCommonArray(vector<int>& A, vector<int>& B) {
: int n = A.size();
:  
: bitset<51> maskA=0, maskB=0;
: vector<int> res(n, 0);
: for (int i=0; i<n; ++i) {
: maskA[A[i]] = 1;
: maskB[B[i]] = 1;
: res[i] = (maskA & maskB).count();
: }
: return res;
: }
: };
: ```
:  
思路:
掃過去 看當前元素有沒有在兩個字串出現過
Python Code:
class Solution:
def findThePrefixCommonArray(self, A: List[int], B: List[int]) -> List[int]:
tmp = 0
result = []
for i in range(len(A)):
if A[i] in A[:i+1] and A[i] in B[:i+1]:
tmp += 1
if B[i] in A[:i+1] and B[i] in B[:i+1]:
tmp += 1
if A[i] == B[i]:
tmp -= 1
result.append(tmp)
return result

Links booklink

Contact Us: admin [ a t ] ucptt.com