LeetCode 619, 58, 24

目录

  • 619. 只出现一次的最大数字
    • 题目链接
    • 要求
    • 知识点
    • 思路
    • 代码
      • 使用where限制:
      • 使用having限制:
  • 58. 最后一个单词的长度
    • 题目链接
    • 标签
    • Java.split()
      • 思路
      • 代码
    • 不使用Java的API
      • 思路
      • 代码
  • 24. 两两交换链表中的节点
    • 题目链接
    • 标签
    • 要求
    • 思路
    • 代码

619. 只出现一次的最大数字

题目链接

619. 只出现一次的最大数字

  • MyNumbers的字段为num

要求

  • 找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null

知识点

  1. max():取最大值函数。如果一个值都没有,则返回null
  2. count():统计个数的函数。
  3. group by:按照某些字段进行分组。
  4. having:分组后限制的条件,类似于 where ,但必须放在 group by 之后。

思路

要找到单一数字,就得对每个数字的个数进行统计,然后找到出现个数为1的数字们,取它们的最大值作为结果,如果没有一个出现次数为1的数字,则可以利用 max() 的特性返回 null

代码

使用where限制:

selectmax(num) num
from(selectnum,count(*) timesfromMyNumbersgroup bynum) c
wheretimes = 1

使用having限制:

selectmax(num) num
from(selectnumfromMyNumbersgroup bynumhavingcount(*) = 1) c

58. 最后一个单词的长度

题目链接

58. 最后一个单词的长度

标签

字符串

Java.split()

思路

众所周知,在 J a v a Java Java 中有一个很好的函数,它能按照某个字符串对原字符串进行分割,它就是 S t r i n g String String 中的 s p l i t ( ) split() split() 方法,它还会自动去除空串(也就是去除空格后长度为0的字符串),例如" hello world".split(" ")将会返回一个 [ " h e l l o " , " w o r l d " ] ["hello", "world"] ["hello","world"] ,你没有看错,它自动去除了空串(去除了hello前面空格分割的空串),没有返回3个字符串。所以本题可以直接使用它。

代码

class Solution {public int lengthOfLastWord(String s) {String[] strings = s.split(" ");return strings[strings.length - 1].length();}
}

不使用Java的API

思路

对于求最后一个单词的长度,可以从最后一个不为空格的字符开始计数,直到遇到空格,然后返回这个统计的数即可。

代码

class Solution {public int lengthOfLastWord(String s) {char[] str = s.toCharArray();// 先遍历到最后一个单词的最后一个字符,去除空格int i = str.length - 1;while (i >= 0 && str[i] == ' ') {i--;}// 统计最后一个单词的字符数int cnt = 0;while (i >= 0) {if (str[i] == ' ') {break;}cnt++;i--;}return cnt;}
}

24. 两两交换链表中的节点

题目链接

24. 两两交换链表中的节点

标签

递归 链表

要求

  • 你必须在 不修改节点内部的值 的情况下完成本题(即,只能进行节点交换)

思路

先说明几个概念,左节点:待交换的两个节点中的左节点右节点:待交换的两个节点中的右节点前指针:指向待交换的两个节点的指针(为什么需要前指针?因为交换节点不止是两个节点之间的互换,还需要让前指针的指向从 指向左节点 变为 指向右节点。这一点很重要)。

交换节点分为四步:第一步,让前指针指向右节点;第二步,让左节点指向原本右节点指向的节点;第三步,让右节点指向左节点;第四步,更新前指针到左指针处(因为下一轮交换的是交换后的左指针的 下一个节点 和 下下一个节点)。

本题依旧采用 哨兵节点指向链表头节点 的方式,因为前指针一开始得指向链表的头节点

代码

class Solution {public ListNode swapPairs(ListNode head) {ListNode sentinel = new ListNode(-1, head); // 哨兵指针,它指向链表的头节点ListNode prev = sentinel; // 前指针,它指向待交换的两个节点的左节点while (prev.next != null && prev.next.next != null) {ListNode left = prev.next;ListNode right = prev.next.next;prev.next = right; // 让前指针指向右节点left.next = right.next; // 让左节点指向原本右节点指向的节点right.next = left; // 让右节点指向左节点prev = left; // 更新前指针到左指针处}return sentinel.next;}
}

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

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

相关文章

【blender特效】卡通火焰

核心思想就是通过多个不同缩放尺寸的沃罗诺伊叠加,分别构成火焰的大型,中型和小型(形状),最后通过自发光纹理实现火焰加亮。 用的是ev渲染,完全可以把噪音贴图都烘焙出来,自己改改shader就可以扔…

华为OD刷题C卷 - 每日刷题 29(机器人仓库搬砖,爱吃蟠桃的孙悟空)

1、(机器人仓库搬砖): 这段代码是解决“机器人仓库搬砖”的问题。它提供了一个Java类Main,其中包含main方法和getMinEnergy方法,用于计算机器人每小时充能的最小能量格数,以确保在8小时内搬完所有砖块。 …

C++14 新特性:std::make_unique 和 constexpr

今天介绍的 std::unique_ptr 和 constexpr的用法比较简单,所以放到一篇文章中进行介绍。 1、std::make_unique 首先来看 std::unique_ptr,在 C11 中引入了智能指针和std::unique_ptr,为资源管理提供了更安全、更简洁的手段。但是 C11 缺少了…

STM32无法烧写程序的故障排除

如果你在使用STM32微控制器时遇到无法烧写程序的问题,可以按以下步骤进行故障排除: 1. 确认硬件连接 检查电源:确保STM32板子正确供电。调试器连接:确认ST-LINK调试器或其他编程工具与STM32开发板的连接无误,尤其是S…

jQuery如何实现一个轮播图左右翻页的功能

当使用jQuery来实现一个轮播图左右翻页的功能时&#xff0c;你可以遵循以下步骤&#xff1a; HTML结构&#xff1a;首先&#xff0c;你需要创建一个HTML结构来包含轮播图的图片。 <div class"carousel"> <div class"carousel-images"> <…

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品&#xff08;iPhone、iPad、Mac等&#xff09;及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为&#xff1a;亿美元 。 数据说明&#xff1a; 数据整理自苹果公司历年10-K文件&#xff0c;每年10-K文件可能对之前年…

DP:两个数组的dp问题

解决两个数组的dp问题的常用状态表示&#xff1a; 1、选取第一个字符串[0-i]区间以及第二个字符串[0,j]区间作为研究对象 2、根据题目的要求确定状态表示 字符串dp的常见技巧 1、空串是有研究意义的&#xff0c;引入空串可以帮助我们思考虚拟的边界如何进行初始化。 2、如…

【odoo】odoo常用的ORM方法

概要 在Odoo中&#xff0c;ORM&#xff08;对象关系映射&#xff0c;Object-Relational Mapping&#xff09;方法是一种将Python对象映射到数据库表的方法。Odoo的ORM系统使开发者能够使用高级的Python代码而不是复杂的SQL语句来操作数据库。Odoo的ORM方法主要用于创建、读取、…

c#数组的使用

前言 我们在开发c#程序的过程中经常需要使用数组&#xff0c;这个数组就是用来存储多个值的一种数据类型。 1、一维数组 1.1 一维数组的声明 int[] array1;//数组的声明 1.2 一维数组的赋值 int[] array2 new int[] { 1, 2, 3, 3 };//数组的赋值 int[] array3 new int[…

云服务器Ubuntu系统的vim-plus(youcompleteme)完整安装

一. 安装vim-plus PS&#xff1a;需要在那个用户下配置vim-plus&#xff0c;就到那个用户下执行代码 git clone https://github.com/chxuan/vimplus.git ~/.vimplus cd ~/.vimplus ./install.sh二. 解决没有代码自动补全的问题 随便创建一个Test.cpp文件&#xff0c;vim打开…

图像生成新篇章:Stable Diffusion 3 Medium开源评析

摘要 在数字艺术与人工智能的交汇点上&#xff0c;Stable Diffusion 3&#xff08;SD3&#xff09;的开源无疑是一场技术革新的盛宴。就在3月份&#xff0c;我撰写了一篇博文&#xff0c;深入探讨了SD3的技术报告内容与介绍&#xff0c;文章发表在CSDN博客上&#xff0c;https:…

如何用多媒体沙盘实现智能交互体验?

随着多媒体技术在内容展示领域的迅猛进步&#xff0c;智能化信息交互方式已然跃升为公众瞩目的焦点&#xff0c;而展厅作为信息传递与产品展示的核心阵地&#xff0c;正面临着提升交互体验、强化信息传递效果的迫切需求。因此&#xff0c;以多媒体沙盘、LED屏幕等创新装置为媒介…

C/C++图形渲染引擎开发方向有钱景吗?

在当前的技术环境下&#xff0c;特别是在图形渲染引擎开发领域&#xff0c;的确存在一些挑战和变化。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私…

Python和OpenCV图像分块之图像边长缩小比率是2

import cv2 import numpy as npimg cv2.imread("F:\\mytupian\\xihuduanqiao.jpg") # 低反光 cv2.imshow(image, img) # # 图像分块 # dst np.zeros(img.shape, img.dtype) ratio 2 #图像边长缩小比率是2&#xff0c;也就是一张图片被分割成四份 height, wi…

证照之星是一款很受欢迎的证件照制作软件

证照之星是一款很受欢迎的证件照制作软件&#xff0c;证照之星可以为用户提供“照片旋转、裁切、调色、背景处理”等功能&#xff0c;满足用户对证件照制作的基本需求。本站证照之星下载专题为大家提供了证照之星电脑版、安卓版、个人免费版等多个版本客户端资源&#xff0c;此…

AI图书推荐:用ChatGPT按需DIY定制来赚钱

《用ChatGPT按需DIY定制来赚钱》ChatGPT Print Money Method &#xff0c;作者是Cindy Donovan 。 下面是图书概要&#xff1a; ### 第一章&#xff1a;什么是按需印刷以及ChatGPT如何使其变得简单易行&#xff1f; 本章介绍了按需印刷的商业模式&#xff0c;即仅在收到订单时…

SpringMVC-基础架构

一、什么是MVC 二、什么是SpringMVC 三、SpringMVC的特点 四、配置SpringMVC 简单流程&#xff1a; 总体框架 1.创建pom.xml依赖 <!--打包方式--><packaging>war</packaging><!--依赖--><dependencies><dependency><groupId>org.s…

使用GPT/文心实现诗词作画

在教育领域中&#xff0c;古诗词一直是培养学生文化素养和审美能力的重要载体。选择合适的古诗词进行学习和欣赏&#xff0c;不仅能够增强他们的语言表达能力&#xff0c;还能促进他们对中国传统文化的理解和热爱。本文将结合AI技术&#xff0c;将古诗词转换为图画。 1、选择适…

602. 好友申请 II :谁有最多的好友

602. 好友申请 II &#xff1a;谁有最多的好友 题目链接&#xff1a;602. 好友申请 II &#xff1a;谁有最多的好友 代码如下&#xff1a; # Write your MySQL query statement below select ids as id,count(*) as num from (select requester_id as idsfrom RequestAccepte…

IT人的拖延——别让“需求沟通”耽误了你的正事

IT人的工作&#xff0c;很多“需求沟通”的场景&#xff0c;而在沟通需求时&#xff0c;又会因为沟通的不顺畅&#xff0c;没有结果而产生烦躁的情绪或者是悬而未决的不能开始行动&#xff0c;进而间接地造成了拖延。这种拖延的原因&#xff0c;需要从需求沟通的根源来找方案&a…