LeetCode 1667, 36, 199

目录

  • 1667. 修复表中的名字
    • 题目链接
    • 要求
    • 知识点
    • 思路
    • 代码
  • 36. 有效的数独
    • 题目链接
    • 标签
    • 思路
    • 代码
  • 199. 二叉树的右视图
    • 题目链接
    • 标签
    • 思路
    • 代码

1667. 修复表中的名字

题目链接

1667. 修复表中的名字

  • Users的字段为user_idname

要求

编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。

返回按 user_id 排序的结果表。

知识点

  1. substring():截取字符串,接收三个(或两个)参数:源字符串、起始字符索引(索引从1开始)和长度(可选),如果不写长度,则截取源字符串从 起始字符字符串末尾字符 的部分。例如select substring("abcde", 1, 2)的结果为abselect substring("abcde", 2)的结果为bcde
  2. upper():将字符串转化为大写的函数。例如select upper("aBc")的结果为ABC
  3. lower():将字符串转化为小写的函数。例如select upper("AbC")的结果为abc
  4. concat():拼接字符串的函数。例如select concat("us", "er")的结果为user
  5. order by:根据某些字段排序。

思路

想必大家看完知识点之后已经想出如何解决本题了:截取名字的第一个字符,转化为大写;截取名字从第二个字符到末尾字符到部分,转化为小写。然后再将这两部分拼接起来,最后根据user_id进行排序即可。

代码

selectuser_id,concat(upper(substring(name, 1, 1)), lower(substring(name, 2))) name
fromUsers
order byuser_id

36. 有效的数独

题目链接

36. 有效的数独

标签

数组 哈希表 矩阵

思路

可以使用二维数组保存各行、各列、各3x3宫内数字1-9是否出现过,在遍历到某个数字时,先检查它所在行、列、3x3宫是否有这个数字,如果有,则返回false;如果没有,就标记它所在行、列、3x3宫有这个数字。如果能遍历完整个9x9宫,说明这个数独有效,返回true

二维数组如何保存数字1-9?对于行数组row来说,它每行表示九宫格的每行,它每列表示数字1-9;对于列数组col来说,它每行表示九宫格的每列,它每列表示数字1-9;对于3x3宫数组sub来说,它每行表示九宫格的编号从09,它每列表示数字1-9

行数组row和列数组col实现起来比较简单,但3x3宫数组sub的实现就不是这么简单了,需要计算每个3x3宫的编号,先给每个3x3宫编号,如下图所示:
九宫格

观察可得:

0行0列是第0个3x3宫,…,2行2列是第0个3x3
0行3列是第1个3x3宫,…,2行5列是第1个3x3
0行6列是第2个3x3宫,…,2行8列是第2个3x3
3行0列是第3个3x3宫,…,5行2列是第3个3x3
3行3列是第4个3x3宫,…,5行5列是第4个3x3
3行6列是第5个3x3宫,…,5行8列是第5个3x3
6行0列是第6个3x3宫,…,8行2列是第6个3x3
6行3列是第7个3x3宫,…,8行5列是第7个3x3
6行6列是第8个3x3宫,…,8行8列是第8个3x3

不难看出,每当列数增加3,编号增加1;每当行数增加3,编号增加3。所以可以得出一个结论:i行第j列的格子属于编号为i / 3 * 3 + j / 33x3

代码

class Solution {public boolean isValidSudoku(char[][] board) {boolean[][] row = new boolean[9][9];boolean[][] col = new boolean[9][9];boolean[][] sub = new boolean[9][9];for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {char ch = board[i][j];if (ch == '.') { // 当ch不是数字时continue; // 跳过ch}int num = ch - '1';int subIndex = i / 3 * 3 + j / 3;// 判断这个数字是否重复if (row[i][num] || col[j][num] || sub[subIndex][num]) {return false;}// 进行标记row[i][num] = true;col[j][num] = true;sub[subIndex][num] = true;}}return true;}
}

199. 二叉树的右视图

题目链接

199. 二叉树的右视图

标签

树 深度优先搜索 广度优先搜索 二叉树

思路

本题的思路很简单:层序遍历二叉树,将每层的最后一个节点的值加入结果链表即可。如果对层序遍历不熟悉,可以看这篇文章:102. 二叉树的层序遍历。

对层序遍历做个总结:使用队列存放每层节点,预先放入根节点,在遍历每层节点时将下一层的节点(即当前层节点的左、右子节点)加入队尾,直到队列为空。

代码

class Solution {public List<Integer> rightSideView(TreeNode root) {if (root == null) { // 如果根节点为nullreturn new ArrayList<>(); // 则返回空链表}List<Integer> res = new ArrayList<>(); // 结果链表LinkedList<TreeNode> queue = new LinkedList<>(); // 存放每层节点的队列queue.offer(root);while (!queue.isEmpty()) {int size = queue.size(); // 获取本层节点的数量for (int i = 0; i < size; i++) { // 遍历本层的所有节点TreeNode curr = queue.poll();if (i == size - 1) { // 如果是本层最后一个节点res.add(curr.val); // 将本层节点的值放入结果链表}if (curr.left != null) {queue.offer(curr.left);}if (curr.right != null) {queue.offer(curr.right);}}}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SET加密:电子商务安全的基石

随着电子商务的飞速发展&#xff0c;如何确保在线交易的安全性和可信度已成为消费者、商家和金融机构共同关注的焦点。SET协议&#xff08;Secure Electronic Transaction&#xff09;作为一种安全电子交易的国际标准&#xff0c;凭借其卓越的安全性能和广泛的行业认可&#xf…

食品行业怎么用JSON群发短信

食品作为日常生活不可缺少的元素&#xff0c;市场需求是很稳定的&#xff0c;但是份额就那么多&#xff0c;商家都要来抢占的话&#xff0c;就需要运营推广各凭本事&#xff0c;市场运营中选择合适的推广方式&#xff0c;可以增加店铺销售额&#xff0c;很多实体店或商城都会建…

MATLAB-振动问题:两自由度耦合系统自由振动

一、基本理论 二、MATLAB实现 以下是两自由度耦合系统自由振动质量块振动过程动画显示的MATLAB程序。 clear; clc; close allx0 1; D1 40; D12 8; D2 D1; m1 1; omega0 sqrt(D1/m1); k1 D12 / D1; k2 D12 / D2; k sqrt(k1 * k2); omegazh omega0 * sqrt(1 k); omeg…

pytest中的极其重要固件(request)的理解

pytest 是一个非常流行的Python测试框架&#xff0c;它为开发人员提供了丰寴的测试工具和功能。 在pytest中&#xff0c;固件&#xff08;fixture&#xff09;是一种非常核心的概念&#xff0c;用于设置测试前的预条件&#xff0c;清理测试后的环境&#xff0c;或者提供测试过…

高效实现虚拟机(VMware)安装教程(附安装包)

目录 一.下载VMware Wworkstation Pro 二 安装&#xff1a; 注&#xff1a;若是安装完VMware&#xff0c;还想在上面安装Centos、Ubuntu&#xff0c;系统请转到基于VMware的linux操作系统安装&#xff08;附安装包&#xff09;-CSDN博客 一.下载VMware Wworkstation Pro 渠道…

文心一言用户达3亿!文心大模型4.0 Turbo发布,支持API,真GPT-4 Turbo国产来了!

文心一言用户规模达到3亿了&#xff01; 这是笔者在今天的百度Wave Summit 2024大会上的看到的数字。需要强调的是&#xff0c;文心一言的用户规模是在去年12月破亿的。这意味着&#xff0c;仅仅隔了6个月&#xff0c;文心一言用户数量在亿这个级别的数字上竟然直接翻了三倍。…

【C++】线程库

在 C11 问世之前&#xff0c;多线程基本和平台关系密切&#xff0c;不同的平台下多线程各有特点&#xff0c;使得 Windows 和 Linux 下必须拥有各自的系统调用接口&#xff0c;但同时也使得代码的可移植性较差。 C11中最重要的特性&#xff0c;就是支持了多线程编程&#xff0c…

【高性能服务器】服务器概述

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ 服务器概述 服…

计算机网络 —— 基本概念

基本概念 1. 通信协议2. 面向连接 v.s. 面向无连接3. 电路交换 v.s. 分组交换4. 单工通信 v.s. 双工通信 1. 通信协议 通信协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU 以及不同的操作系统组成的计算…

C# 实现websocket双向通信

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C# &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff…

人工智能在多模态多组学领域的最新研究进展|顶刊速递·24-06-29

小罗碎碎念 本期推文主题&#xff1a;人工智能在多模态与多组学中的最新研究进展 今天这期推文比较特殊&#xff0c;起来就开始干活&#xff0c;只能跑来会场写了。 小罗观点 今天这期推文覆盖面挺广的&#xff0c;前四篇与肿瘤治疗相关&#xff0c;并且两篇都直接与免疫微环境…

Websocket解析及用法(封装一个通用订阅发布主题的webSocket类)

1、什么是WebSocket? websocket的目标是通过一个长连接实现与服务器全双工&#xff0c;双向的通信。是一种在单个TCP连接上进行全双工通信的协议&#xff0c;使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在 js中创建websocket…

统计信号处理基础 习题解答11-1

题目 观测到的数据具有PDF 在μ给定的条件下&#xff0c;是相互独立的。均值具有先验PDF&#xff1a; 求μ的 MMSE 和 MAP 估计量。另外&#xff0c;当和时将发生什么情况? 解答 和两者都是独立高斯分布&#xff0c;与例题10.1一致&#xff0c;直接套用&#xff08;10.11&am…

Nvidia Jetson/RK3588+AI双目立体相机,适合各种割草机器人、扫地机器人、AGV等应用

双目立体视觉是基于视差原理&#xff0c;依据成像设备从不同位置获取的被测物体的图像&#xff0c;匹配对应点的位置偏移&#xff0c;得到视差数据&#xff0c;进而计算物体的空间三维信息。为您带来高图像质量的双目立体相机&#xff0c;具有高分辨率、低功耗、远距离等优点&a…

ubuntu丢失网络/网卡的一种原因解决方案

现象 开机进入ubuntu后发现没有网络&#xff0c;无论是在桌面顶部状态栏的快捷键 还是 系统设置中&#xff0c;都没有”有线网“和”无线网“的选项&#xff0c;”代理“的选项是有的使用数据线连接电脑和手机&#xff0c;手机开启”通过usb共享网络“&#xff0c;还是没有任何…

Nginx 1.26.1最新版部署笔记

Nginx是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 以下是 Nginx 的一些核心功能和特点&#xff1a; 高性能的 Web 服务器&#xff1a; Nginx 被设计为处理高并发连接&#xff0c;具有非常高的性能和稳定性。反向代理&#xff1a; …

分享3个AI工具-包括自学AI文档和AI搜索和智能体

文章目录 通往AGI之路-自学神器秘塔AI扣子 通往AGI之路-自学神器 这是是一个有关AI知识的开源文档。 但是&#xff0c;我认为这是小白学习AI的最强王者&#xff0c;每一个想学习AI、想使用AI的人都可以把它设为首页&#xff0c;从它开始。 飞书文档&#xff1a;通往AGI之路 …

Python 面试【★★★★】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

golang跨平台GUI框架fyne介绍与使用详解,开放案例

golang跨平台GUI框架fyne介绍与使用详解 Fyne 是一个使用 Go 编写的易于使用的 UI 工具包和应用程序 API。 它旨在构建使用单一代码库在桌面和移动设备上运行的应用程序。 通过批量调用身份证实名和三网手机实名和银行卡核验等接口&#xff0c;完成fyne框架的基本使用介绍 主要…

CVPR 2024 | 双手协作双物体的数据集TACO:引领可泛化手物交互的新方向

论文题目&#xff1a; TACO: Benchmarking Generalizable Bimanual Tool-ACtion-Object Understanding 论文链接&#xff1a; https://arxiv.org/pdf/2401.08399.pdf 项目主页&#xff1a; https://taco2024.github.io/ 视频链接&#xff1a; https://www.youtube.com/watch…