标签:int day4 日练 stack 力扣 数组 root self def
1、每日温度
关键:需要返回与原数组等长的数组结果而且双层循环会超时,采用栈结构(存储下标计算天数),用第一个元素的下标初始化栈,构造一个和原数组等长的全0数组表示初始天数,之后遍历原温度数组并更新栈顶元素(若当前温度较高则弹出栈顶元素并计算,将当前元素下标入栈,否则直接将当前元素入栈。
class Solution:
def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
r=[0 for i in range(len(temperatures))]
stack=[0]
for i in range(1,len(temperature)):
while stack and temperature[i]>stack[-1]:
j=stack.pop()
r[j]=i-j
stack.append(i)
return r
2、最短无序连续子数组
关键:若只想通过则可以对原数组排序,将原数组和排序后数组比较即可
class Solution:
def findUnsortedSubarray(self, nums: List[int]) -> int:
nums2=sorted(nums)
left,right=0,len(nums)-1
while left<len(nums):
if nums[left]!=nums2[left]:
break
left+=1
if left==len(nums):
return 0
while left<right:
if nums[right]!=nums2[right]:
break
right-=1
return right-left+1
3、将二叉搜索树转化为累加树
关键:二叉搜索树的中序遍历
class Solution:
def __init__(self):
self.sum=0
def convertBST(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if root == None: #递归出口
return
self.convertBST(root.right)
self.sum+=root.val
root.val=slef.sum
self.convertBST(root.left)
return root
标签:int,day4,日练,stack,力扣,数组,root,self,def 来源: https://www.cnblogs.com/feiyuyu/p/16511782.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。