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

杭州微网站建设公司山东百搜科技有限公司

杭州微网站建设公司,山东百搜科技有限公司,wordpress cgi漏洞,网站建设费如何入帐力扣每日四题 228. 汇总区间-简单1431. 拥有最多糖果的孩子-简单637. 二叉树的层平均值-简单49. 字母异位词分组-中等总结 228. 汇总区间-简单 题目描述: 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也…

力扣每日四题

  • 228. 汇总区间-简单
  • 1431. 拥有最多糖果的孩子-简单
  • 637. 二叉树的层平均值-简单
  • 49. 字母异位词分组-中等
  • 总结

228. 汇总区间-简单

题目描述:
给定一个 无重复元素 的 有序 整数数组 nums 。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。
列表中的每个区间范围 [a,b] 应该按如下格式输出:
“a->b” ,如果 a != b
“a” ,如果 a == b

题解:
维护一个起点变量和终点变量,遍历数组时遇到的新元素如果不等于终点变量加一就将之前维护的起点到终点放入结果数组中

代码(Go):

func summaryRanges(nums []int) []string {sce := []string{}if len(nums) == 0{return sce}left := nums[0]right := left - 1for i := 0;i < len(nums);i++{if nums[i] == right + 1{right = nums[i]}else{if left != right{s := fmt.Sprintf("%d->%d",left,right)sce = append(sce,s)left = nums[i]right = left}else{s := fmt.Sprintf("%d",left)sce = append(sce,s)left = nums[i]right = left}}}if left != right{s := fmt.Sprintf("%d->%d",left,right)sce = append(sce,s)}else{s := fmt.Sprintf("%d",left)sce = append(sce,s)}return sce
}

1431. 拥有最多糖果的孩子-简单

题目描述:
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。

题解:
先遍历一次数组记录最大值,并把糖果分配给所有孩子,再遍历一次数组看分配糖果后哪个孩子的糖果数大于等于最大值

代码(Go):

func kidsWithCandies(candies []int, extraCandies int) []bool {max := 0for i,v := range candies{if v > max{max = v}candies[i] = v + extraCandies}sce := make([]bool,len(candies))for i,v := range candies{if v >= max{sce[i] = true}else{sce[i] = false}}return sce
}

637. 二叉树的层平均值-简单

题目描述:
给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

题解:
求层平均值直接层序遍历的同时记录每层的节点个数并把同层的节点值相加保存下来就可以了。官方题解的深度优先搜索和广度优先搜索的代码都比较复杂,感觉不如层序遍历

代码(Go):

func averageOfLevels(root *TreeNode) []float64 {quene := []*TreeNode{root}num := 1re := []float64{}for len(quene) > 0{node := quene[0:num]quene = quene[num:]var sum float64 = 0for _,v := range node{sum += float64(v.Val)num--if v.Left != nil{quene = append(quene,v.Left)num++}if v.Right != nil{quene = append(quene,v.Right)num++}}re = append(re,sum/float64(len(node)))}return re
}

49. 字母异位词分组-中等

题目描述:
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

题解:
一看就是哈希表,但是不再是两两对比了,所以需要建立一个用数组做索引的哈希表,通过计数排序的思想进行字符串对比,最后遍历哈希表放进返回数组。一开始哈以为官方会有更好的办法,每有一种字母异位词就要建一个数组做索引占空间好大,结果官方也是这么做的。

代码(Go):

func groupAnagrams(strs []string) [][]string {dict := map[[26]int][]string{}for _, s := range strs {arr := [26]int{}for _, v := range s {arr[v - 'a']++}dict[arr] = append(dict[arr], s)}re := make([][]string, 0, len(dict))for _, v := range dict {re = append(re, v)}return re
}

总结

这两天先捏一捏软柿子,从简单慢慢往难的过度,前两天被几道中等题迎头痛击

http://www.yidumall.com/news/6547.html

相关文章:

  • 五合一网站建设网络营销专业是干嘛的
  • 360网站弹窗推广怎么做的引流最好的推广方法
  • 服务好的高端网站建设推广营销软件
  • dw软件可以做哪些网站对网站的建议和优化
  • 网站开发seo规范青岛网络优化费用
  • 网站开发语言php买号链接
  • 用织梦做的学校网站公司网站建设多少钱
  • 网站cmd做路由分析海外广告投放公司
  • 可以做mv的视频网站seo方案怎么做
  • 新网 主办网站已备案微信小程序开发流程
  • 一级a做爰片免播放器网站网络营销工具与方法
  • 烟台市建设工程招标投标协会网站seo sem是什么
  • 开发网站找什么公司吗百度资源提交
  • 怎么把做的页面放到网站上网络销售工作靠谱吗
  • 官方查企业信息的网站近期时政热点新闻20条
  • 做淘宝的网站有哪些微商怎么做推广加好友
  • 网站建设发布教程视频上海百网优seo优化公司
  • 长沙住房和建设城乡委员会网站百度指数查询
  • 网站挂马解决360优化大师官网
  • 团购网站做二级域名影响seo排名的因素
  • 网站制作论文 优帮云广告公司联系方式
  • dede网站地图代码免费b站推广网站有哪些
  • 广州企业网页制作新乡seo公司
  • 网站验证码系统白酒最有效的推广方式
  • 防城港做网站国际最新新闻
  • 哪个网站可以做视频软件免费好用的crm软件
  • 建网页网站百度seo排名优化公司哪家强
  • 东莞市专注网站建设公司短视频培训学校
  • 第一源码交易平台关键词排名优化公司
  • 网页视频在线提取专业排名优化工具