LeetCodeTencent注目の演習50-Day11

LeetCode Tencent特集演習50日11
質問136:1回だけ表示される数値
空でない整数配列を指定すると、1回だけ表示される1つの要素を除いて、他のすべての要素が2回表示されます。1回だけ表示される要素を見つけます。
説明:アルゴリズムは線形の時間計算量を持つ必要があります。余分なスペースを使わずにそれを行うことができますか?
回答:

def singleNumber(self, nums: List[int]) -> int:
        res = 0
        for num in nums:
            res = res ^ num # 异或
        return res

演算結果:
ここに画像の説明を挿入します
問題解決:

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        return sum(set(nums))*2 - sum(nums) # set()中不含重复元素

質問141:循環リンクリストリンクリストが
与えられた場合、リンクリストにリングがあるかどうかを判断します。
リンクリストに次のポインタを継続的に追跡することで再び到達できるノードがある場合、リンクリストにリングがあります。特定のリンクリスト内のリングを表すために、整数posを使用して、リンクリストの終わりがリンクリストに接続されている位置を示します(インデックスは0から始まります)。posが-1の場合、リンクリストにリングはありません。注:posは、リンクリストの実際の状況を識別するためだけに、パラメーターとして渡されることはありません。
リンクリストにリングがある場合は、trueを返します。それ以外の場合は、falseを返します。
回答:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def hasCycle(self, head: ListNode) -> bool:
        if not head:
            return False
        while head.val and head.next != None:
            head.val = None
            head = head.next
        if not head.next:
            return False
        else:
            return True

演算結果:
ここに画像の説明を挿入します
質問142:循環リンクリストII
リンクリストを指定して、リンクリストがリングに入り始める最初のノードを返します。リンクリストにリングがない場合は、nullが返されます。
特定のリンクリスト内のリングを表すために、整数posを使用して、リンクリストの終わりがリンクリストに接続されている位置を示します(インデックスは0から始まります)。posが-1の場合、リンクリストにリングはありません。posはリングを識別するためにのみ使用され、パラメーターとして関数に渡されないことに注意してください。
注:指定されたリンクリストを変更することは許可されていません。
回答:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def detectCycle(self, head: ListNode) -> ListNode:
        fast = slow = head
        while fast and fast.next:
            fast = fast.next.next
            slow = slow.next
            if fast == slow:
                while head != slow:
                    head = head.next
                    slow = slow.next
                return head
        return None

演算結果:
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_44315884/article/details/112985358