力扣爆刷第112天之CodeTop100五连刷46-50

力扣爆刷第112天之CodeTop100五连刷46-50

文章目录

      • 力扣爆刷第112天之CodeTop100五连刷46-50
      • 一、148. 排序链表
      • 二、22. 括号生成
      • 三、70. 爬楼梯
      • 四、2. 两数相加
      • 五、165. 比较版本号

一、148. 排序链表

题目链接:https://leetcode.cn/problems/sort-list/description/
思路:链表的归并排序,先递归分割链表,然后比较合并,注意分割操作,和边界条件。


class Solution {public ListNode sortList(ListNode head) {return cutList(head, null);}ListNode cutList(ListNode head, ListNode end) {if(head == null) return head;if(head.next == end) {head.next = null;return head;}ListNode slow = head, fast = head;while(fast != end) {slow = slow.next;fast = fast.next;if(fast != end) {fast = fast.next;}}ListNode left = cutList(head, slow);ListNode right = cutList(slow, end);return merge(left, right);}ListNode merge(ListNode node1, ListNode node2) {ListNode root = new ListNode(), temp = root;while(node1 != null && node2 != null) {if(node1.val <= node2.val) {temp.next = node1;node1 = node1.next;}else{temp.next = node2;node2 = node2.next;}temp = temp.next;}if(node1 != null) {temp.next = node1;}if(node2 != null) {temp.next = node2;}return root.next;}}

二、22. 括号生成

题目链接:https://leetcode.cn/problems/generate-parentheses/description/
思路:排列题,但是不需要考虑去重,只需要正常排列,然后收获结果的时候进行判断是否合法。

class Solution {char[] source  = {'(', ')'};List<String> list = new ArrayList<>();StringBuilder builder = new StringBuilder();public List<String> generateParenthesis(int n) {backTracking(n*2);return list;}void backTracking(int n) {if(builder.length() == n) {if(isTrue(builder)) {list.add(builder.toString());}return;}for(int i = 0; i < 2; i++) {builder.append(source[i]);backTracking(n);builder.deleteCharAt(builder.length()-1);}}boolean isTrue(StringBuilder builder) {int n = 0;for (int i = 0; i < builder.length(); i++) {if(builder.charAt(i) == '(') {n++;}else{n--;}if(n < 0) return false;}return n == 0;}
}

三、70. 爬楼梯

题目链接:https://leetcode.cn/problems/climbing-stairs/description/
思路:最简单的动态规划,每一个位置依赖于前两个位置,分别为跨一步和跨两步。

class Solution {public int climbStairs(int n) {if(n < 4) return n;int a = 1, b = 2, c = 0;for(int i = 3; i <= n; i++) {c = a + b;a = b;b = c;}return c;}
}

四、2. 两数相加

题目链接:https://leetcode.cn/problems/add-two-numbers/description/
思路:遍历相加,然后用一个变量记录进制值,下次计算时加进去。


class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int res = 0;ListNode root = new ListNode(), p = root;while(l1 != null || l2 != null) {int a = l1 != null ? l1.val : 0;int b = l2 != null ? l2.val : 0;int sum = a+b+res;res = sum / 10;ListNode t = new ListNode(sum%10);p.next = t;p = t;l1 = l1 != null ? l1.next : null;l2 = l2 != null ? l2.next : null;}    if(res == 1) {p.next = new ListNode(1);}return root.next;}}

五、165. 比较版本号

题目链接:https://leetcode.cn/problems/compare-version-numbers/description/
思路:利用乘10循环计数的方法,前导0乘10后还是0,剩下的就简单轻松了,不等就判断返回,等就进行下一轮计算。

class Solution {public int compareVersion(String version1, String version2) {int i = 0, j = 0, m = version1.length(), n = version2.length();while(i < m || j < n) {int x = 0;for(; i < m && version1.charAt(i) != '.'; i++) {x = x * 10 + version1.charAt(i) - '0';}i++;int y = 0;for(; j < n && version2.charAt(j) != '.'; j++) {y = y * 10 + version2.charAt(j) - '0';}j++;if(x != y) {return x > y ? 1 : -1;}}return 0;}
}

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

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

相关文章

数据结构——顺序表(C语言)

目录 一、顺序表概念 二、顺序表分类 1.静态顺序表 2.动态顺序表 三、顺序表的实现 1.顺序表的结构体定义 2. 顺序表初始化 3.顺序表销毁 4.顺序表的检验 5.顺序表打印 6.顺序表扩容 7.顺序表尾插与头插 8.尾删与头删 9.在pos处插入数据 10.在pos处删除数据 11.查找数据 …

端盒日记Day02

JS 本本本本本地存储 localStorage 作用&#xff1a;可以将数据永久存储在本地&#xff08;用户电脑&#xff09;&#xff0c;除非手动删除&#xff0c;否则关闭页面也会存在 特性&#xff1a;a.可多窗口&#xff08;页面&#xff09;共享&#xff08;同一浏览器可以共享&a…

若依:一个基于Spring Boot、Spring Security、JWT、Vue和Element的全部开源快速开发平台

若依后台管理系统&#xff1a;一个基于Spring Boot、Spring Security、JWT、Vue和Element的全部开源快速开发平台 一、引言 随着软件开发技术的发展&#xff0c;前后端分离的开发模式逐渐成为主流。这种模式能够提高开发效率&#xff0c;降低维护成本&#xff0c;使前后端工程…

C++实现单例模式

#include <iostream> class Singleton { private: static Singleton* instance; // 指向单例实例的指针 Singleton() {} // 私有构造函数 public: // 获取单例对象的唯一全局访问点 static Singleton* getInstance() { if (instance nullpt…

c# wpf template itemtemplate+ListBox

1.概要 2.代码 <Window x:Class"WpfApp2.Window7"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

Kafka参数介绍

官网参数介绍:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/documentation/#configuration

开源大语言模型(LLM)汇总(持续更新中)

随着ChatGPT的火爆&#xff0c;越来越多人希望在本地运行一个大语言模型。为此我维护了这个开源大语言模型汇总&#xff0c;跟踪每天不发的大语言模型和精调语言模型。 我将根据个模型采用的基础大模型进行分类&#xff0c;每个大模型下列出各派生模型。 Alpaca (Stanford) 斯…

STM32CubeIDE基础学习-通用定时器中断实验

STM32CubeIDE基础学习-通用定时器中断实验 文章目录 STM32CubeIDE基础学习-通用定时器中断实验前言第1章 工程配置1.1 工程外设配置部分1.2 生成工程代码部分 第2章 代码编写第3章 实验现象总结 前言 生活中很多应用都有用到定时器功能、计时功能等。 定时器中断可以大大降低…

Win10文件夹共享(有密码的安全共享)(SMB协议共享)

前言 局域网内&#xff08;无安全问题&#xff0c;比如自己家里wifi&#xff09;无密码访问&#xff0c;参考之前的操作视频 【电脑文件全平台共享、播放器推荐】手机、电视、平板播放硬盘中的音、视频资源 下面讲解公共网络如办公室网络、咖啡厅网络等等环境下带密码的安全…

python爬虫———post请求方式(第十四天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

C++学习笔记(五)

临时对象与C11右值引用 右值&#xff1a;不可取地址的值是右值。左值&#xff1a;可以取地址就是左值。 -------------------------------------- 临时对象&#xff1a; ----------------- 临时对象的特性&#xff1a; -------------------- 系统不分配地址&#xff0c;在下一…

android wifi连接

记住密码&#xff0c;第二次登录不必输入。 如果使用其他方式&#xff0c;可不可以。其实就是自己选择wifi。 ******************** 我根本没办法站在更高的维度去思考整个项目&#xff0c;认知也达不到&#xff0c;我很多的事情都不知道&#xff08;信息不全&#xff09;&…

力扣经典150题第二题:移除元素

移除元素问题详解与解决方法 1. 介绍 移除元素问题是 LeetCode 经典题目之一&#xff0c;要求原地修改输入数组&#xff0c;移除所有数值等于给定值的元素&#xff0c;并返回新数组的长度。 问题描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等…

关于阿里云中RDS数据库的CPU使用率和内存使用率的20道高级面试题2

1. 什么是RDS数据库的CPU使用率&#xff1f;如何监控和管理它&#xff1f; RDS数据库的CPU使用率指的是数据库在执行各项操作时对CPU资源的占用情况。监控和管理CPU使用率可以通过RDS管理控制台来实现。 RDS管理控制台提供了多种工具和方法来查看和监控CPU的使用情况&#xf…

使用vue计算斐波那契数列的第n项

Vue的新特性主要关注于提升性能、优化开发体验以及增加组件的灵活性和可维护性。然而&#xff0c;Vue本身并不是专门用于实现动态规划&#xff08;Dynamic Programming, DP&#xff09;的库或框架。动态规划是一种在数学、计算机科学和经济学中使用的&#xff0c;通过把原问题分…

docker安装Nexus,maven私服

文章目录 前言安装创建文件夹设置文件夹权限docker创建指令制作docker-compose.yaml文件 查看网站访问网页查看密码 前言 nexus作为私服的maven仓库&#xff0c;在企业级应用中&#xff0c;提供了依赖来源的稳定性&#xff0c;为构建庞大的微服务体系&#xff0c;打下基础 安…

vue 浅解watch cli computed props ref vue slot axios nexttick devtools说明使用

Vue.js 是一个强大的前端框架&#xff0c;它提供了很多有用的功能和工具。你提到的这些特性&#xff08;watch、cli、computed、props、ref、slot、axios、nextTick、devtools&#xff09;在 Vue 中各自扮演着不同的角色。下面我会逐一解释这些特性如何在 Vue 中使用&#xff1…

Github 2024-04-05 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-05统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目3Vue项目2JavaScript项目1Go项目1Rust项目1Bruno: 专为API探索和测试而设计的开源IDE 创建周期:532 天开发语言:Ja…

20240405,数据类型,运算符,程序流程结构

是我深夜爆炸&#xff0c;不能再去补救C了&#xff0c;真的来不及了&#xff0c;不能再三天打鱼两天晒网了&#xff0c;真的来不及了呜呜呜呜 我实在是不知道看什么课&#xff0c;那黑马吧……MOOC的北邮的C正在进行呜呜 #include <iostream> using namespace std; int…

MySQL - 基础三

11、事务管理 CURD不加控制&#xff0c;会有什么问题&#xff1f; 当客户端A检查还有一张票时&#xff0c;将票卖掉&#xff0c;还没有执行更新数据库时&#xff0c;客户端B检查了票数&#xff0c;发现大于0&#xff0c;于是又卖了一次票。然后A将票数更新回数据库。这是就出现…