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

leetCode刷题笔记

文章目录

  • 1. 把两个有序链表整合成一个新的有序列表
  • 2. 两数之和
  • 3. 有效括号的字符串

1. 把两个有序链表整合成一个新的有序列表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

package com.example.demo.main.Domain;
import lombok.Data;@Data
public class CommonNode<V> {public V value;public CommonNode next;
}
package com.example.demo.main.algor;
import com.example.demo.main.Domain.CommonNode;public class MergeTwoNodeTest {/*** 题目:将两个有序的链表,整合出一个有序的链表,从小到大*/public static void main(String[] args) {CommonNode commonNode1 = new CommonNode<Integer>();commonNode1.setValue(1);CommonNode commonNode2 = new CommonNode<Integer>();commonNode2.setValue(3);commonNode1.setNext(commonNode2);CommonNode commonNode3 = new CommonNode<Integer>();commonNode3.setValue(2);CommonNode commonNode4 = new CommonNode<Integer>();commonNode4.setValue(4);commonNode3.setNext(commonNode4);CommonNode mergeNode = mergeTwoNodeList(commonNode1, commonNode3);while (mergeNode != null) {System.out.println(mergeNode.getValue());mergeNode = mergeNode.getNext();}}/*** 将两个有序的链表,整合出一个有序的链表,从小到大*/private static CommonNode mergeTwoNodeList(CommonNode commonNode1, CommonNode commonNode2) {CommonNode headNode = new CommonNode();headNode.setValue(-1);CommonNode preNode = headNode;while (commonNode1 != null && commonNode2 != null) {if ((Integer)commonNode1.getValue() < (Integer)commonNode2.getValue()){preNode.setNext(commonNode1);commonNode1 = commonNode1.getNext();} else {preNode.setNext(commonNode2);commonNode2 = commonNode2.getNext();}preNode = preNode.getNext();}if (commonNode1 == null) {preNode.setNext(commonNode2);} else {preNode.setNext(commonNode1);}return headNode.getNext();}
}

2. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。每种输入只会对应一个答案。但是,数组中同一个元素在答案里不会重复出现。
可以按任意顺序返回答案。

class Solution {public int[] twoSum(int[] nums, int target) {//Map<Integer, Integer> map = new HashMap<>();Map<Integer,Integer>map =new HashMap<>();for(int i = 0; i< nums.length; i++) {if(map.containsKey(target - nums[i])) {return new int[] {map.get(target-nums[i]),i};}map.put(nums[i], i);}return new int[0];}
}

3. 有效括号的字符串

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
    示例 4:

输入:s = “([)]”
输出:false

class Solution {public boolean isValid(String s) {int n = s.length();if (n % 2 == 1) {return false;}Map<Character, Character> pairs = new HashMap<Character, Character>() {{put(')', '(');put(']', '[');put('}', '{');}};Deque<Character> stack = new LinkedList<Character>();for (int i = 0; i < n; i++) {char ch = s.charAt(i);if (pairs.containsKey(ch)) {//栈顶元素不是当前元素的左括号if (stack.isEmpty() || stack.peek() != pairs.get(ch)) {return false;}//栈顶元素是当前元素的左括号,出栈stack.pop();} else {//入栈stack.push(ch);}}return stack.isEmpty();}
}
http://www.lryc.cn/news/34848.html

相关文章:

  • 数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)
  • 大聪明教你学Java | 带你了解 Redis 的三种集群模式
  • Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)
  • 液氮恒温器概述
  • Shiro核心——Realm
  • 开发钉钉微应用,实现免登+调试
  • 0308java基础-注解,反射
  • 【鸿蒙应用ArkTS开发系列】- 页面跳转及传参
  • StringBuilder 类
  • kubectl-k8s用户切换
  • 【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包
  • 计算机网络-- 应用层(day08)
  • English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一
  • SpringBoot——统一功能处理
  • ORACLE SQL格式化小数点
  • 【信息学奥数】—— 第一部分 C++语言 知识总结
  • video层级过高,以及界面使用多个video时,在安卓APP上同时播放的问题(uniapp)
  • C++基础了解-14-C++ 字符串
  • 浅谈几种网络攻击及攻防原理
  • Kafka消息中间件(Kafka与MQTT区别)
  • Go垃圾回收原理
  • Coredump-N: stack 空间被临时变量吃满,导致内存访问出现问题
  • GO中使用viper读取配置文件
  • webpack dll 提升构建速度
  • C++面向对象编程之三:初始化列表、类对象作为类成员、静态成员
  • 跨域问题解决方案
  • Vue3电商项目实战-购物车模块7【20-登录后-批量删除、21-登录后-选中状态修改数量、22-登录后-全选反选、23-登录后-修改规格、24-下单结算】
  • 软件测试之快速熟悉项目
  • 软考高级信息系统项目管理师系列之二十一:项目风险管理
  • 打包成JAR文件和WAR文件,到底有什么区别?