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

做网站布为网建设玩偶网站最终目的

做网站布为网,建设玩偶网站最终目的,达内教育,南宁自助建站模板下载记录了初步解题思路 以及本地实现代码#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/18 303. 区域和检索 - 数组不可变3/19 1793. 好子数组的最大分数3/20 1969. 数组元素的最小非零乘积3/21 2671. 频率跟踪器3/22 2617. 网格图中最少访问的格子数3/23 254…记录了初步解题思路 以及本地实现代码并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/18 303. 区域和检索 - 数组不可变3/19 1793. 好子数组的最大分数3/20 1969. 数组元素的最小非零乘积3/21 2671. 频率跟踪器3/22 2617. 网格图中最少访问的格子数3/23 2549. 统计桌面上的不同数字3/24 3/18 303. 区域和检索 - 数组不可变 前缀和 nums[x]记录0~x的元素和 计算i~j之间的元素和为nums[j]-nums[i-1]即可 class NumArray(object):def __init__(self, nums)::type nums: List[int]pre 0self.nums [0]for n in nums:prenself.nums.append(pre)def sumRange(self, i, j)::type i: int:type j: int:rtype: intreturn self.nums[j1]-self.nums[i] 3/19 1793. 好子数组的最大分数 双指针 为了确定l,r 两个都从k开始向左向右移动 比较哪一边的数值较大则往哪边移动 minv记录当前区间最小值 def maximumScore(nums, k)::type nums: List[int]:type k: int:rtype: intn len(nums)minv nums[k]ans nums[k]l r kfor _ in range(n-1):if r n-1 or l0 and nums[l-1]nums[r1]:l-1minv min(minv,nums[l])else:r1minv min(minv,nums[r])ans max(ans,minv*(r-l1))return ans 3/20 1969. 数组元素的最小非零乘积 每一次操作 并不会改变元素的和 而在元素和不变的情况下 要想使得乘积最小应该尽可能最大化元素的差值 最大的元素为 2p-1 无论怎么交换 差值不会变大 不考虑 剩余元素可以首尾配对 x与2p-1-x配对 一个数只保留最低位1 剩余的给另一个 可以得到 1 和 2**p-2 两个值相乘 最后乘积为(2p-1)*(2p-2)(2(p-1)-1) def minNonZeroProduct(p)::type p: int:rtype: intMOD10**97if p1:return 1def power(x,n):x_init xb []while n0:r n%2b.insert(0,r)n n//2for i in range(1,len(b)):x x*x%MODif b[i]1:x x*x_init%MODreturn xbase 2**pnum base//2-1x (base-2)%MODans 1ans power(x,num)%MODans (ans*((base-1)%MOD))%MODreturn ans 3/21 2671. 频率跟踪器 hash表记录次数 num[i]记录数字i出现的次数 cnt[q]记录频率为q的数字个数 class FrequencyTracker(object):def __init__(self):self.num {}self.cnt {}def add(self, number)::type number: int:rtype: Noneself.cnt[self.num.get(number,0)] self.cnt.get(self.num.get(number,0),0)-1self.num[number] self.num.get(number,0)1self.cnt[self.num.get(number,0)] self.cnt.get(self.num.get(number,0),0)1def deleteOne(self, number)::type number: int:rtype: Noneif self.num.get(number,0)0:returnself.cnt[self.num.get(number,0)] self.cnt.get(self.num.get(number,0),0)-1self.num[number] self.num.get(number,0)-1self.cnt[self.num.get(number,0)] self.cnt.get(self.num.get(number,0),0)1def hasFrequency(self, frequency)::type frequency: int:rtype: boolreturn self.cnt.get(frequency,0)0 3/22 2617. 网格图中最少访问的格子数 对于grid[i][j] 已知到这个位置最少需要f步 向右走 最远到达该行的grid[i][j]j 向下走 最远到达该列的grid[i][j]i 在这一行 维持一个最小堆 保存rowh(f,grid[i][j]j) 表示上一步走了f的最远可以到达位置 列同理colh 接下来考虑 如何得到grid[i][j]最少需要f 分别处理rowh,colh 对于堆顶最小f 它的距离如果到不了当前的位置i/j 则将其弹出 最后可以得到行、列分别能够到达当前位置的两个最小f 即rowh[0][0],colh[0][0] 对于当前的最小步数f min(rowh[0][0],colh[0][0])1 def minimumVisitedCells(grid)::type grid: List[List[int]]:rtype: intimport heapqm,nlen(grid),len(grid[0])if m1 and n1:return 1colhs [[] for _ in range(m)]for i,row in enumerate(grid):rowh[]for j,(g,colh) in enumerate(zip(row,colhs)):while rowh and rowh[0][1]j:heapq.heappop(rowh)while colh and colh[0][1]i:heapq.heappop(colh)f float(inf) if i or j else 1if rowh:f rowh[0][0]1if colh:f min(f,colh[0][0]1)if g and ffloat(inf):heapq.heappush(rowh,(f,gj))heapq.heappush(colh,(f,gi))return f if ffloat(inf) else -1 3/23 2549. 统计桌面上的不同数字 n100 最差的情况 对于已有数字x 下一天x-1必定会出现在桌面上 x,x-1,x-2…,2 所以在10^9内 如果n1则2~n都会出现在桌面上 如果n1 则只有1 def distinctIntegers(n)::type n: int:rtype: intreturn 1 if n1 else n-1 3/24
http://www.zqtcl.cn/news/983109/

相关文章:

  • 昆明网站建设猫咪科技公司资料模板
  • 网站系统开发做网站需要填什么
  • 网站的数据库丢失建筑素材网
  • 个人网站做短视频pathon能做网站开发吗
  • 客户网站制作管理系统网站程序 wap pc 同步
  • 天津手动网站建设调试百度医院网站建设
  • ppt网站源码今天哈尔滨最新通告
  • asp网站乱码广州制作网页设计
  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻
  • 电子商务网站管理互联网营销师主要做什么
  • 门户网站指的是什么凯里网络公司建设网站
  • 网站接入服务商查询0建设营销型网站步骤
  • 长沙如何做百度的网站小型网站建设实训教程
  • 昆明网络公司网站网站建设经费请示
  • 手机端网站欣赏wordpress 文章rss
  • 做网站一定要实名认证吗国外免费空间网站申请
  • 阿里云网站空间主机长春网站建设设计
  • 龙华网站建设yihekj长沙招聘网站制作