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

政府的网站应该怎么做门户网站怎么做

政府的网站应该怎么做,门户网站怎么做,风水取名网站开发,南山网站设计多少钱目录 1789. 员工的直属部门题目链接表要求知识点思路代码 6. Z 字形变换题目链接标签思路代码 138. 随机链表的复制题目链接标签思路代码 1789. 员工的直属部门 题目链接 1789. 员工的直属部门 表 表Employee的字段为employee_id,department_id和primary_flag。…

目录

  • 1789. 员工的直属部门
    • 题目链接
    • 要求
    • 知识点
    • 思路
    • 代码
  • 6. Z 字形变换
    • 题目链接
    • 标签
    • 思路
    • 代码
  • 138. 随机链表的复制
    • 题目链接
    • 标签
    • 思路
    • 代码

1789. 员工的直属部门

题目链接

1789. 员工的直属部门

  • Employee的字段为employee_iddepartment_idprimary_flag

要求

  • 请编写解决方案,查出员工所属的直属部门。
  • 返回结果 没有顺序要求

知识点

  1. count():统计个数的函数。
  2. group by:根据字段分组。

思路

直属部门的定义是 primary_flagY 或者 他只属于一个部门,知道这个定义后,思路就很明显了:先获取只属于一个部门的员工的id employee_id,然后将这些数据作为子表,放到限制条件中,限制条件还有一个 primary_flag = ‘Y’,它们的关系是

代码

selectemployee_id,department_id
fromEmployee
whereprimary_flag = 'Y'
oremployee_id
in(selectemployee_idfromEmployeegroup byemployee_idhavingcount(*) = 1)

6. Z 字形变换

题目链接

6. Z 字形变换

标签

字符串

思路

做这道题时是我想起了高中物理中的简谐运动,可以将其简单理解为正弦函数 y = s i n x y=sinx y=sinx,横轴为时间轴,竖轴为位移轴,只看竖轴的话,那么就是一个质点随着时间流逝在做上下往复的运动,当它到极限(波峰或波谷)时,它就得掉头(调转向上或向下的方向),如下图所示:
正弦函数

讲完这个东西后,理解本题的解法就更容易了。本题可以将原字符串当作这个做简谐运动的质点,它的运动轨迹(即题目中描述的 Z 字形,但我觉得它更像 N 字形一点)就像上图描述的一样,不过这时竖轴就是这个字符在Z字形中的行数,横轴没有实际意义。

所以模拟这个往复运动的过程就能将字符按Z字形分到不同的行上,然后将每行组成的小字符串按照行数的顺序拼接在一起,组成最终的大字符串。

遍历原字符串,字符的行数是从小到大、然后再从大到小的,调转的时机就是 行数为0(波峰) 和 行数为numRows - 1(波谷)

将字符分到不同行时可以使用 S t r i n g B u i l d e r StringBuilder StringBuilder,本题解使用了一个 S t r i n g B u i l d e r StringBuilder StringBuilder数组,每个 S t r i n g B u i l d e r StringBuilder StringBuilder都记录了一行字符,在将所有字符都分到对应的行之后,按顺序将所有行合并到一起。

代码

class Solution {public String convert(String s, int numRows) {// 如果numRows比2小,则不需要改变,直接返回原字符串即可if (numRows < 2) {return s;}// 先初始化numRows个StringBuilder,每个StringBuilder都代表一行StringBuilder[] builders = new StringBuilder[numRows];for (int i = 0; i < numRows; i++) {builders[i] = new StringBuilder();}int i = 0; // i是填充字符的行数int flag = -1; // flag是方向,要么为上: -1,要么为下: 1for (char c : s.toCharArray()) {builders[i].append(c);if (i == 0 || i == numRows - 1) { // 若行数为 第一行 或 最后一行flag = -flag; // 则调转填充字符的方向}i += flag; // 调整行数}// 按顺序合并StringBuilder的字符串StringBuilder res = new StringBuilder();for (StringBuilder builder : builders) {res.append(builder);}return res.toString();}
}

138. 随机链表的复制

题目链接

138. 随机链表的复制

标签

哈希表 链表

思路

先讲一讲什么叫做浅拷贝和深拷贝,实际上这两个概念很简单,浅拷贝就是拷贝后的对象和原来的对象指向同一块内存,而深拷贝是拷贝后的对象和原来的对象指向不同的内存。

本题可以使用旧节点和新节点的映射,key为旧节点,value为新节点。遍历两遍链表,第一遍先创建新节点,并建立映射;第二遍给新节点的next, random赋值,这时就可以从映射中获取旧节点对应的新节点,从而实现深拷贝。

代码

class Solution {// 旧节点与新节点的映射,key为旧节点,value为新节点private final Map<Node, Node> mapper = new HashMap<>();public Node copyRandomList(Node head) {if (head == null) {return null;}// 创建新节点,建立映射for (Node curr = head; curr != null; curr = curr.next) {mapper.put(curr, new Node(curr.val));}// 为新节点的next和random赋值for (Node curr = head; curr != null; curr = curr.next) {Node newNode = mapper.get(curr);newNode.next =  mapper.get(curr.next);newNode.random = mapper.get(curr.random);}// 返回第一个新节点return mapper.get(head);}
}
http://www.yidumall.com/news/55321.html

相关文章:

  • 微网站建设哪家好东莞谷歌推广公司
  • ftp中如何找到网站首页精准客源引流平台
  • 百度站长推送厦门排名推广
  • 注册了一个域名怎么做网站搜索引擎关键词广告
  • 如何做网站效果更好网站营销策划
  • 网站建设及管理使用情况汇报百度关键词挖掘
  • 网站流量指标有哪些网络推广营销技巧
  • 上海第五届进博会河南网站seo
  • 广州疫情风险等级最新消息合肥百度seo排名
  • 如何查看网站是什么语言做的有网站模板怎么建站
  • 成都程序员网站站长之家备案查询
  • 网站案例网站建设网页设计成品源代码
  • 店铺装修设计网免费seo快速排名系统
  • 没有网站做cpa怎么赚钱app推广代理平台
  • 用什么网站做海报 知乎武汉百度百科
  • wordpress 无法验证sslseo是什么意思新手怎么做seo
  • 大埔县住房城乡规划建设局网站优化排名推广教程网站
  • 郑州大旗网站制作公司市场营销培训
  • 网站没有icp备案是不是就是骗子百度下载安装2021
  • 网站建设 网络推广 网站优化先做后付费的代运营
  • 百度网页版网址链接郑州百度快照优化排名
  • 设计站上海网络营销公司
  • 江苏网站建设公司排名怎么优化整站
  • 昌平网站建设精准营销推广方案
  • 做铝材的网站北京计算机培训机构哪个最好
  • 网站后台如何添加附件seo网站优化优化排名
  • 重庆市建设网站推广计划
  • 建站开始的前6个月多少外链最合适淘宝关键词挖掘工具
  • 做网站建设的怎么拓展业务长尾词seo排名优化
  • 南宁律师网站建设怎么在百度发布个人简介