日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python解答力扣网站题库简单版----第三讲

發布時間:2023/12/20 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python解答力扣网站题库简单版----第三讲 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1041. 困于環中的機器人

題庫鏈接: 1041. 困于環中的機器人.

題干

在無限的平面上,機器人最初位于 (0, 0) 處,面朝北方。機器人可以接受下列三條指令之一:

  • "G":直走 1 個單位
  • "L":左轉 90 度
  • "R":右轉 90 度
  • 機器人按順序執行指令 instructions,并一直重復它們。

只有在平面中存在環使得機器人永遠無法離開時,返回 true。否則,返回 false。

示例

示例 1

輸入:"GGLLGG" 輸出:true 解釋:機器人從 (0,0) 移動到 (0,2),轉 180 度,然后回到 (0,0)。 重復這些指令,機器人將保持在以原點為中心,2 為半徑的環中進行移動。

示例 2

輸入:"GG" 輸出:false 解釋:機器人無限向北移動。

示例3

輸入:"GL" 輸出:true 解釋: 機器人按 (0, 0) -> (0, 1) -> (-1, 1) -> (-1, 0) -> (0, 0) -> ... 進行移動。

提示

  • 1 <= instructions.length <= 100
  • instructions[i] 在 {'G', 'L', 'R'} 中

思路

  • 只要循環一次之后方向不是在向北或一次之后就在原點,
  • 那么循環四次或者四次之內之后就可以回到初始位置
  • 使用兩個變量記錄點的位置,使用兩個變量記錄機器人的方向。
  • 遍歷指令,如果為‘L’, 執行dx, dy = -dy, dx(橫坐標為縱坐標的相反數,縱坐標為橫坐標),如果為‘R’,執行dx, dy = dy, -dx(橫坐標為縱坐標,縱坐標為橫坐標的相反數)。
  • 最后只要方向不向北或已經在原點機器人就可以離開。

代碼解析

class Solution(object):def isBoomerang(self, points):""":type points: List[List[int]]:rtype: bool"""A,B,C=pointsreturn (A[0]-B[0])*(B[1]-C[1])-(A[1]-B[1])*(B[0]-C[0])!=0

運行結果

237. 刪除鏈表中的節點

題庫鏈接: 237. 刪除鏈表中的節點.

題干

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。

現有一個鏈表 -- head = [4,5,1,9],它可以表示為:

示例

示例 1

輸入: head = [4,5,1,9], node = 5 輸出: [4,1,9] 解釋: 給定你鏈表中值為 5 的第二個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 1 -> 9.

示例 2

輸入: head = [4,5,1,9], node = 1 輸出: [4,5,9] 解釋: 給定你鏈表中值為 1 的第三個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 5 -> 9 .

說明

  • 鏈表至少包含兩個節點。
  • 鏈表中所有節點的值都是唯一的。
  • 給定的節點為非末尾節點并且一定是鏈表中的一個有效節點。
  • 不要從你的函數中返回任何結果。

思路:

  • 使本節點為刪除節點的下一個點,刪除節點的下一個點為刪除節點的下下一個節點。

代碼解析

# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = Noneclass Solution(object):def deleteNode(self, node):""":type node: ListNode:rtype: void Do not return anything, modify node in-place instead."""node.val, node.next = node.next.val, node.next.next


運行結果

1. 兩數之和

題庫鏈接: 1. 兩數之和.

題干

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。

你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。

示例

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

解法1

思路:

  • 暴力破解,遍歷每一個元素,并查找是否存在兩個數和為target

代碼解析

class Solution(object):def twoSum(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[int]"""for i in range(len(nums)):for k in range(i + 1, len(nums)):if nums[i] + nums[k] == target:return [i, k]break

?

運行結果

當然解法一是非常暴力的會消耗很長時間和內存空間,接下來介紹一個更好的解法。

解法2

  • 使用一個字典記錄list里面的值和索引,遍歷list,如果target-num在字典里面返回兩個索引值,否則返回None

代碼解析

?

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:hashmap = {}for index, num in enumerate(nums):another_num = target - numif another_num in hashmap:return [hashmap[another_num], index]hashmap[num] = indexreturn None

?

結尾

  • 雞湯:人的一生,既不是想象中的那么好,也不是想象中的那么壞。每個人的背后都會有心酸,都會有無法言說的艱難。每個人都會有自己的淚要擦,都會有自己的路要走。

歡迎加入公眾號學習交流,公眾號會分享,爬蟲,數據分析和Python后端等內容。

轉載于:https://www.cnblogs.com/tiandi-fun/p/10887477.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Python解答力扣网站题库简单版----第三讲的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。