Semaine LeetCode 277
Annuaire d'articles
première question:
nombre d'éléments
Cette question porte sur le tri, et le nombre de valeurs intermédiaires calculées après le tri est le résultat de la réponse. Cette question est une question de connexion, et tout le monde devrait la répondre directement !
Code:
class Solution:
def countElements(self, nums: List[int]) -> int:
nums.sort()
sum = 0
for index,i in enumerate(nums):
if index == 0 or index == len(nums) -1 :
continue
if i > nums[0] and i < nums[-1]:
sum += 1
return sum
Deuxième question:
réorganiser le tableau par symbole
Personnellement, je pense que la difficulté de cette question n'est pas une mid
difficulté, il faut lui donner la easy
difficulté Peut-être que le jeu de cette semaine est relativement simple, alors comptons-le simplement mid
comme un.
C'est trop simple, je ne parlerai pas de l'idée, vous n'avez qu'à regarder le code !
Code:
class Solution:
def rearrangeArray(self, nums: List[int]) -> List[int]:
n1 = []
n2 = []
n = []
for i in nums:
if i>0:
n1.append(i)
else:
n2.append(i)
for j in range(len(n1)):
n.append(n1[j])
n.append(n2[j])
nums[:] = n
return nums
Troisième question :
Trouver tous les nombres solitaires dans un tableau
Cette question doit d'abord être triée, puis traversée et jugée.
Code:
class Solution:
def findLonely(self, nums: List[int]) -> List[int]:
if len(nums) == 1:
return nums
nums.sort()
lone = []
dit = {
}
for i in set(nums):
dit[i] = 0
for i in nums:
dit[i] +=1
for i in range(len(nums)):
if i == 0 and dit[nums[i]] == 1 and nums[i+1] - 1 != nums[i] :
lone.append(nums[i])
elif i == len(nums) - 1 and dit[nums[i]] == 1 and nums[i-1] + 1 != nums[i]:
lone.append(nums[i])
elif i != 0 and i != len(nums) - 1 and nums[i-1] + 1 != nums[i] and nums[i+1] - 1 != nums[i] and dit[nums[i]] == 1:
lone.append(nums[i])
return lone
Quatrième question :
Comptez le meilleur nombre de personnes en fonction de la déclaration
Cette question est aussi la question finale de ce concours hebdomadaire. C'est une question de réflexion pour l'école primaire, mais j'ai aussi été conquise hahaha. Après le jeu, j'ai lu les réponses des grands gars dans la somme en y et la zone de résolution de problèmes , et je savais probablement comment l'écrire. J'ai juste quelques idées. Cette question peut utiliser directement la méthode d'énumération par force brute car son calcul de plage se situe dans la plage requise par la force. La complexité maximale de ce problème est 2的n次方乘n的方
, et la complexité de l'énumération par force brute est 2的n次方乘n
. Ainsi s'établit la loi du dénombrement violent !
Reportez-vous à l'idée d'un grand homme :
Code:
class Solution:
def maximumGood(self, statements: List[List[int]]) -> int:
n = len(statements)
res = 0
for i in range(2**n):
falg = True
c = 0
for j in range(n):
if (i>>j)&1:
c += 1
for k in range(n):
if statements[j][k] != 2 and statements[j][k] != ((i>>k)&1):
falg = False
break
if falg == True:
res = max(res,c)
return res
Résumer:
Ce concours hebdomadaire est aussi mon deuxième concours hebdomadaire, car il est relativement facile d'obtenir les trois premières questions de ce concours hebdomadaire, donc nous sommes tous ac, et les deux premières questions étaient ac lors du dernier concours hebdomadaire, et j'espère faire progressez avec tout le monde. Je vous souhaite tout le meilleur. Au cours de la nouvelle année, la route vers l'ac va s'étendre jusqu'au bout ! ! ! Allez, allez, et j'espère que cet article vous sera utile ! ! !