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

苏州企业网站建设制作方案厦门市建设工程造价网站

苏州企业网站建设制作方案,厦门市建设工程造价网站,有没有做市场评估的网站,wordpress do action目录 1321. 餐馆营业额变化增长题目链接表要求知识点思路代码 209. 长度最小的子数组题目链接标签暴力法思路代码 滑动窗口思路代码 102. 二叉树的层序遍历题目链接标签思路代码 1321. 餐馆营业额变化增长 题目链接 1321. 餐馆营业额变化增长 表 表Customer的字段为custome…

目录

  • 1321. 餐馆营业额变化增长
    • 题目链接
    • 要求
    • 知识点
    • 思路
    • 代码
  • 209. 长度最小的子数组
    • 题目链接
    • 标签
    • 暴力法
      • 思路
      • 代码
    • 滑动窗口
      • 思路
      • 代码
  • 102. 二叉树的层序遍历
    • 题目链接
    • 标签
    • 思路
    • 代码

1321. 餐馆营业额变化增长

题目链接

1321. 餐馆营业额变化增长

  • Customer的字段为customer_idnamevisited_onamount

要求

你是餐馆的老板,现在你想分析一下可能的营业额变化增长(每天至少有一位顾客)。

计算以 7 天(某日期 + 该日期前的 6 天)为一个时间段的顾客消费平均值。average_amount保留两位小数

结果按 visited_on 升序排序

知识点

  1. min():求最小值的函数。
  2. sum():求和的函数。
  3. round():四舍五入的函数。
  4. datediff():计算日期的差值的函数。注意:参数的顺序对结果有影响,例如datediff('2020-01-10', '2020-01-03')datediff('2020-01-03', '2020-01-10)的结果为相反数。
  5. distinct:去除某个字段的重复值。
  6. between and:将结果限制到一个闭区间内。
  7. join on:内连接,查询两个集合的交集。

思路

本题的结果返回的是 最小日期加上6天后的所有日期 的统计,统计的数据是这7天的总营业额sum(amount)和平均营业额round(sum(amount) / 7, 2),本题的难点不在于统计,而是在于如何找到合适的统计范围。

首先,求出所有的日期(日期可能重复,要使用distinct来去重),使用子表tb_date来接收数据,然后进行多表查询和限制。

对日期的第一个限制条件(或者说是对内连接的限制条件)为:第一个表的日期tb_date.visited_on比第二个表的日期tb_c.visited_on06天,这样一来,tb_date的每条数据 都对应 tb_c7条数据tb_c7条数据的日期tb_c.visited_on 就是 tb_date的日期tb_date.visited_on的前6天和当天,对tb_c对这7条数据进行统计即可(统计前先按照tb_date.visited_on分组)。

对日期的第二个限制条件为:>= 最小日期加上6天后的日期,求最小日期很方便,使用min(visited_on)即可求得最小日期。求完最小日期后再加上限制tb_date.visited_on >= 最小日期 + 6

代码

selecttb_date.visited_on,sum(amount) amount,round(sum(amount) / 7, 2) average_amount
from(selectdistinct visited_onfromCustomer) tb_date
joinCustomer tb_c
ondatediff(tb_date.visited_on, tb_c.visited_on)
between0
and6
wheretb_date.visited_on >= (selectmin(visited_on)fromCustomer) + 6
group bytb_date.visited_on

209. 长度最小的子数组

题目链接

209. 长度最小的子数组

标签

数组 二分查找 前缀和 滑动窗口

暴力法

思路

看到本题,想到了一种很容易实现的思路:以数组的每个元素为子数组的第一个元素,然后往后遍历,直到超过target。然而很遗憾,这样做会超时。

代码

class Solution {public int minSubArrayLen(int target, int[] nums) {int n = nums.length;int res = Integer.MAX_VALUE;for (int left = 0; left < n; left++) {int sum = 0;for (int right = left; right < n; right++) {sum += nums[right];if (sum >= target) {res = Math.min(res, right - left + 1);break;}}}return res == Integer.MAX_VALUE ? 0 : res;}
}

滑动窗口

思路

仔细看暴力法,发现有很大一部分时间浪费在寻找子数组的最后一个元素的索引上,所以能不能想出一种方法,这种方法 在寻找到子数组的最后一个元素的索引right后 不需要 从下一个子数组的第一个元素的索引left开始寻找right

这种方法是存在的:首先要记录right的值,然后在找到right(子数组的和大于等于target)后去除子数组头部的多余元素(这里的多余元素指的是去除该元素后子数组的值仍然大于等于target的元素)。在去除到极限(子数组的和小于target)时,让right向原数组尾部移动。重复这样的操作,直到right到达原数组尾部。

代码

class Solution {public int minSubArrayLen(int target, int[] nums) {int n = nums.length;int res = Integer.MAX_VALUE;int left = 0, right = 0, sum = 0;while (right < n) {sum += nums[right];while (sum >= target) { // 去除子数组头部的多余元素res = Math.min(res, right - left + 1); // 记住要更新res的值sum -= nums[left]; // 子数组的和变小left++; // 左端点右移}right++; // 右端点右移,寻找下一个合适的right}return res == Integer.MAX_VALUE ? 0 : res;}
}

102. 二叉树的层序遍历

题目链接

102. 二叉树的层序遍历

标签

树 广度优先搜索 二叉树

思路

本题是一道广度优先搜索的题,可以使用队列来存储二叉树每层的节点,在遍历每层节点时,记录该节点的值,并把下一层节点加入队列尾部(由于每次只遍历一层,所以不会从队列中取出下一层的节点),直到队列为空。

代码

class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if (root == null) { // 如果根节点为nullreturn new ArrayList<>(); // 则返回空链表}List<List<Integer>> res = new ArrayList<>(); // 结果链表LinkedList<TreeNode> queue = new LinkedList<>(); // 存放每层节点的队列queue.offer(root); // 二叉树的第一层是根节点,将根节点放入队列while (!queue.isEmpty()) { // 直到队列为空才退出循环List<Integer> level = new LinkedList<>(); // 存放本层节点的值的链表int size = queue.size(); // 获取本层节点的数量,限制本次遍历只在当前层for (int i = 0; i < size; i++) { // 遍历本层的所有节点TreeNode curr = queue.poll(); // 取出本层的节点level.add(curr.val); // 存放本层节点的值if (curr.left != null) { // 如果当前节点的左子节点不为nullqueue.offer(curr.left); // 则将其加入队列}if (curr.right != null) { // 如果当前节点的右子节点不为nullqueue.offer(curr.right); // 则将其加入队列}}res.add(level); // 将本层节点的值放入结果链表}return res;}
}
http://www.yayakq.cn/news/909465/

相关文章:

  • 赤风设计网站澄海玩具网站建设公司
  • 网站维护源码自适应网络建站的费用
  • 做不规则几何图形的网站wordpress 4.5.7漏洞
  • 万网空间最多放几个网站铁岭 网站建设
  • 福州思企互联网站建设公司wordpress page 单页
  • 电商网站开发的现状哪里做外贸网站
  • 易记域名网站大全网站开发涉及服务
  • 龙岗网站建设价位未来最吃香的十大行业2022
  • 用asp做的网站省西省建设厅网站
  • 求个国外在线网站网站开发大概价格
  • 优秀个人网站设计欣赏wordpress主题版权
  • 唐山 建设工程信息网站wordpress登录图标
  • 天津哪家做网站好做网站的图片=gif
  • 苏州市建设工程交易中心网站莆田网站制作价格
  • 在家百度统计网站打不开仙桃seo公司
  • 样式模板网站计算机网站开发和软件开发
  • 厦门人才网官网重庆网站优化公司怎么样
  • 网站优化成功案例极简风格的网站
  • 中山快速做网站服务做淘宝网站需要多少钱
  • 黑人与白人做爰网站如何备份wordpress数据库结构
  • 外贸wordpress建站百度竞价推广方法
  • 网站推广预期达到的目标网站开发工具安全性能
  • 方圆网 网站建设开源项目网站怎么做 带视频
  • vs html5网站开发小米路由器wordpress
  • 济南网站建设找凌峰大连做网站的科技公司
  • 策划电子商务网站建设规划书潍坊做网站公司补脾最
  • 在深圳做网站wordpress ftp wp-config.php
  • 网站建设中所涉及的所有链接建设公众号涨粉平台
  • 做食物网站住宅与建设部网站
  • 苏州网站建设营销app首页界面设计