当前位置: 首页 > news >正文

JAVA算法练习题day40

48.路径总和③

“如果二叉树是一条链,那么这题就和560.和为K的子数组一样了”

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def pathSum(self, root, targetSum):""":type root: Optional[TreeNode]:type targetSum: int:rtype: int"""self.ans = 0cnt = {0:1}def dfs(root,s):if root is None:returns += root.valself.ans += cnt.get(s-targetSum,0)cnt[s] = cnt.get(s,0) + 1dfs(root.left,s)dfs(root.right,s)cnt[s]-=1returndfs(root,0)return self.ans

多做一题相关的:560.和为K的子数组

这题做过,发现还是不会。没想起前缀和+哈希表(讲到哈希,不一定是set,还有map)的做法。有想不起做法做不出来的挫败感,但是都是正常的,以后工作可能会面对更多的挫败感,在学算法题时候多锻炼自己的专注度意志力以及对应挫败感的能力吧。

前缀和+哈希表(这次认真手算了题解里的例子,更加熟悉算法运作的流程了)

先枚举s[j],从1开始。在字典里找不到值为s[j]-k的数,就把s[j]放入字典(下次++的时候,这次放入的s[j]就成为了i<j里面的i,符合题意)的key,其value是count s[j]出现的次数(因为随着遍历,可能会有相同的前缀和放进来)。若字典里找到了值为s[j]-k的数,将其value(出现次数)累加到ans。Return ans

class Solution(object):def subarraySum(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""s = (len(nums)+1) * [0]for i in range(len(nums)):s[i+1] = s[i] + nums[i]ans = 0cnt = defaultdict(int)for sj in s:#如果 key 不存在,返回 default(这里是 0)ans += cnt.get(sj-k,0)cnt[sj] += 1return ans

http://www.dtcms.com/a/478676.html

相关文章:

  • 电子电气架构 --- 车载多系统架构
  • JVM 垃圾回收算法
  • 宁波企业如何建网站网站 提示危险
  • 嵌入式开发--STM32H7系列的硬件SPI的读写函数问题
  • printk 使用技巧
  • 深度学习入门(六)——模块、正则化与工程调优全解析
  • python高级05——HTTP协议和静态服务器
  • 现在网站一般做多大的南沙网站建设哪家好
  • 使用Mathematica做Lorenz系统的稳定性分析
  • centos升级redis至最新版(绿色版)
  • 做logo宣传语的网站电影网页设计素材
  • 从C++开始的编程生活(11)——string类基本语法和string类的基本实现
  • 南宁网站建设策划外包培训机构营销方案
  • 建站用什么搭建比较好网站后台是什么
  • 官方网站开发与定制广州网道营销广告有限公司
  • 设置 windows nginx.exe 每天 重启
  • 优先级队列(堆)-703.数据流中的最大值-力扣(LeetCode)
  • 亚马逊自养号测评新手从零起步:环境搭建全流程指南
  • 数据结构_栈和队列
  • 江苏优化网站关键词wordpress子域
  • 怎么用Visio studio做网站北京网页网站设计制作
  • html css网页制作成品——HTML+CSS盐津铺子网页设计(5页)附源码
  • 网站编辑简历网站建设域名什么意思
  • 如何做网站内链优化个人网站建设咨询电话
  • 网站色彩搭配原则拼多多 wordpress
  • 网站建站网站设计公司深圳网站建设 龙华信科
  • 花瓣网是仿国外那个网站做的深圳全网营销方案
  • 网站首页引导页 模版网站制作类软件推荐
  • 【LeetCode】71. 简化路径
  • 基于 go 的分布式缓存