我在leetcode上经历了这个问题的艰难时期。
我不得不查找解决方案,因为出于某种原因,我的代码总是会遇到一些问题。当在数组中查找不存在的目标编号时,我拥有的当前代码仍然无限循环。
我正在寻找一些帮助,以帮助您了解是否存在更直观的方法来解决此问题,并且还有助于修复我的代码。
我认为我不需要此行:
if nums[mid] == target or nums[low] == target or nums[high] == target:
return target
Run Code Online (Sandbox Code Playgroud)
我想知道如何做才能确保如果我有一个由1-3个数字组成的数组,那么我的代码无需指定此条件语句就能找到目标。这是几个例子
print(search([1, 2, 3], 1))
print(search([1], 1))
print(search([2, 1], 1))
Run Code Online (Sandbox Code Playgroud)
另外,在这样的例子中,print(search([5, 1, 2, 3, 4], 6))
我的代码永远不会返回-1
if nums[mid] == target or nums[low] == target or nums[high] == target:
return target
Run Code Online (Sandbox Code Playgroud)
从遇到类似于我上面的解决方案的多个解决方案开始,人们都说是这样,O(logn)但是我不知道我们何时将其移动low并移动high1。这使我相信该解决方案是最坏的情况O(n)
寻求帮助!
我不完全理解leetcode上“找到链表的中间”while问题的循环条件:
给定一个具有头节点 head 的非空单链表,返回链表的中间节点。
如果有两个中间节点,则返回第二个中间节点。
对于while循环,我认为条件是
while first and last.next:
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到一条错误消息
AttributeError: 'NoneType' object has no attribute 'next'
Run Code Online (Sandbox Code Playgroud)
条件语句应该是
while last and last.next:
Run Code Online (Sandbox Code Playgroud)
我不明白为什么。这是带有正确 while 循环的完整代码:
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def middleNode(self, head):
first = last = head
while last and last.next:
first = first.next
last = last.next.next
return first
Run Code Online (Sandbox Code Playgroud) 我正在解决一个我在原地反转单词的问题。我注意到,根据我的or运算符前后的语句顺序,该代码将无法正常工作。
如果我改变
if i == len(s1) or s1[i] == ' ':
Run Code Online (Sandbox Code Playgroud)
至
if s1[i] == ' ' or i == len(s1):
Run Code Online (Sandbox Code Playgroud)
我得到错误
Traceback (most recent call last):
File "reverse_words_in_place.py", line 58, in <module>
reverse_words(s1)
File "reverse_words_in_place.py", line 6, in reverse_words
if s1[i] == ' ' or i == len(s1):
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
if i == len(s1) or s1[i] == ' ':
Run Code Online (Sandbox Code Playgroud)
此代码的输出是
steal pound cake
Run Code Online (Sandbox Code Playgroud)
只要
if i == len(s1) or s1[i] == ' ': …Run Code Online (Sandbox Code Playgroud)