【Leetcode】1-5

1 两数之和

1. 两数之和 - 力扣(LeetCode)

和为目标值 target 就是在找 target - nums[i]

利用 哈希表 查找只需要 O(1)

class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer, Integer> hm = new HashMap<>();for (int i = 0; i < nums.length; i++) {if (hm.containsKey(target - nums[i])) {return new int[] { hm.get(target - nums[i]), i };}hm.put(nums[i], i);}return new int[0]; // 可以这样返回}
}

2 两数相加

2. 两数相加 - 力扣(LeetCode)

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode pre = new ListNode(0); // 头指针boolean carry = false; // 进位ListNode cur = pre; // 当前指针while (l1 != null || l2 != null) {int sum = 0;if (carry) {// 如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数int x = l1 != null ? l1.val : 0;// 如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数int y = l2 != null ? l2.val : 0;sum = x + y + 1;carry = false;} else {// 如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数int x = l1 != null ? l1.val : 0;// 如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数int y = l2 != null ? l2.val : 0;sum = x + y;}if (sum >= 10) {sum %= 10;carry = true;}cur.next = new ListNode(sum);cur = cur.next;// 当链表l1不等于null的时候,将l1 的节点后移if (l1 != null) {l1 = l1.next;}// 当链表l2 不等于null的时候,将l2的节点后移if (l2 != null) {l2 = l2.next;}}if (carry) {cur.next = new ListNode(1);}return pre.next;}
}

3 无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣(LeetCode)

4 寻找两个正序数组的中位数

4. 寻找两个正序数组的中位数 - 力扣(LeetCode)

class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {// 先合并再找中位数int len1 = nums1.length;int len2 = nums2.length;int len = len1 + len2;int merge[] = new int[len];int count = 0;// merge数组的元素个数int i = 0, j = 0;// 注意三个数组都需要各自独立的指针while (count != len1 + len2) {if (i == len1) {// nums1空了,nums2拼接过来// merge = IntStream.concat(//         Arrays.stream(nums1),//         Arrays.stream(nums2)).toArray();// 注意count要变化// count+=len2-j+1;while(j!=len2){merge[count++]=nums2[j++];}break;}if (j == len2) {// merge = IntStream.concat(//         Arrays.stream(nums2),//         Arrays.stream(nums1)).toArray();while(i!=len1){merge[count++]=nums1[i++];}break;}if (nums1[i] < nums2[j]) {merge[count++] = nums1[i++];} else {merge[count++] = nums2[j++];}}// {5,6,3}if (count % 2 == 0) {return (merge[len / 2 - 1] + merge[len / 2]) / 2.0;} else {return merge[len / 2];}}
}

5 最长回文子串

最长回文子串 - 力扣(LeetCode)

public class Solution {public String longestPalindrome(String s) {int len = s.length();if (len < 2) {return s;}int maxLen = 1;int begin = 0;// dp[i][j] 表示 s[i..j] 是否是回文串boolean[][] dp = new boolean[len][len];// 初始化:所有长度为 1 的子串都是回文串for (int i = 0; i < len; i++) {dp[i][i] = true;}char[] charArray = s.toCharArray();// 递推开始// 先枚举子串长度for (int L = 2; L <= len; L++) {// 枚举左边界,左边界的上限设置可以宽松一些for (int i = 0; i < len; i++) {// 由 L 和 i 可以确定右边界,即 j - i + 1 = L 得int j = L + i - 1;// 如果右边界越界,就可以退出当前循环if (j >= len) {break;}if (charArray[i] != charArray[j]) {dp[i][j] = false;} else {if (j - i < 3) {dp[i][j] = true;} else {dp[i][j] = dp[i + 1][j - 1];}}// 只要 dp[i][L] == true 成立,就表示子串 s[i..L] 是回文,此时记录回文长度和起始位置if (dp[i][j] && j - i + 1 > maxLen) {maxLen = j - i + 1;begin = i;}}}return s.substring(begin, begin + maxLen);}
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

钢铁百科:NM360钢板材质、NM360机械性能、NM360韧性焊接性能

一、NM360钢板材质&#xff1a; NM360是一种高强度耐磨钢板&#xff0c;具有良好的综合机械性能和耐磨性能。它通常用于制造各种机械设备的耐磨部件&#xff0c;如挖掘机斗齿、破碎机锤头、磨煤机叶片等。NM360钢板的化学成分和热处理工艺被精心设计&#xff0c;以确保其在恶劣…

【Python知识宝库】深入理解Python中的字符串操作

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、字符串的创建1.1 使用引号创建字符串1.2 使用字符串函数创建 二、字符串的修改2.1 更改字符串的大小写2.2 拼…

心电调试笔记

原理图设计 注意事项 引脚连接检查&#xff1a;确保每个元器件与芯片引脚连接正确是基础&#xff0c;错误的连接可能导致系统无法正常工作。未连接引脚标识&#xff1a;对于未使用的引脚&#xff0c;虽然不连接但应标识为非使用状态&#xff0c;以免混淆或引起误操作。测试点设…

学学vue-1

vue 0 安装 装node.js&#xff0c;以及cnpm&#xff08;npm超时或者被屏蔽&#xff0c;安装cnpm国内镜像&#xff09; 查看安装版本&#xff08;是否安装成功&#xff09; node -v 安装成功之后也会安装npm npm -v cnpm镜像 npm install -g cnpm --registryhttp://registry.np…

哈希:哈希函数 | 哈希概念 | 哈希冲突 | 闭散列 | 开散列

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

GEE APP——Bellingcat 雷达影像监测平台分析

简介 许多军用雷达在开启时会干扰开源卫星图像。 一个新工具可以让任何人监控这些雷达部署的时间和地点。 该资源库包含该工具的源代码。 下面是该工具使用时的截图,其中有五个标注组件,我们将逐一查看。 在此示例中,该工具以驻扎在沙特阿拉伯达曼的 MIM-104 爱国者 PAC-2 …

早上醒来嗓子干、喉咙痛、咳嗽……快用这个润养好物,给嗓子做个spa,让身体润起来~

进入秋季&#xff0c;很多人出现了眼睛干涩、大便干燥、嘴唇干裂、咽喉疼痛等症状&#xff0c;虽说这些还能够忍受&#xff0c;但它却影响了正常的饮食和休息。 秋季气候干燥&#xff0c;外界燥邪侵犯肺部&#xff0c;易伤津液&#xff0c;肺失滋润&#xff0c;清肃失司&#x…

探讨马丁格尔策略应用的3问和昂首平台的3答

问&#xff1a;为什么在使用马丁格尔策略时要如此谨慎?毕竟最大的市场波动可能根本不会发生。 答&#xff1a;让我们以一个具体的例子来说明这个问题。假设我们进行交易&#xff0c;计算出一个小于最大预期值的市场动量&#xff0c;比如说这个值为90便士。试想&#xff0c;如…

Acunetix v24.8 发布,新增功能概览

Acunetix v24.8 发布&#xff0c;新增功能概览 Acunetix v24.8 (Linux, Windows) - Web 应用程序安全测试 Acunetix | Web Application Security Scanner 请访问原文链接&#xff1a;https://sysin.org/blog/acunetix/&#xff0c;查看最新版。原创作品&#xff0c;转载请保…

Linux---文件(1)---初识文件

目录 预备知识 文件操作接口 打开文件接口 重定向与文件操作关系 "w"方式与重定向 “a”方式与追加重定向 写入文件接口 读取文件接口 系统调用接口 参数解析 预备知识 我们知道&#xff0c;创建出一个空文件也要在内存中占空间。 文件文件内容文件属性 操…

网络安全服务基础Windows--第12节-域与活动目录

工作组 在Windows环境中配置⼯作组相对简单&#xff0c;适合⼩型⽹络环境&#xff0c;如家庭或⼩型办公室⽹络。⼯作组通过简单的⽹络共享和本地管理来实现资源共享&#xff0c;⽽不依赖于中央控制的服务器。 ● 定义&#xff1a;⼯作组是⼀种对等⽹络模型&#xff0c;在这种…

总结一下windows电脑字体模糊的优化方案

问题&#xff1a;谷歌浏览器上页面显示的字体非常细&#xff0c;有点费眼睛了&#x1f47e; 解决方案&#xff1a; 方案1&#xff1a;手动调整ClearType文本。方案2&#xff1a;英伟达显卡控制面板->管理3d设置->关闭全局平滑FXAA&#xff08;如果某个软件需要使用平滑处…

【vue css】background设置背景图片不显示问题

问题&#xff1a; 如上图所示&#xff0c;添加背景图片页面没有显示 解决&#xff1a; 添加background-position: center center 即可显示 但是不知道为什么添加这个属性就可以&#xff0c;求大神解惑

出现 /www/server/mysql/bin/mysqld: Shutdown complete 的解决方法

目录 1. 基本知识1.1 查找my.cnf目录1.2 配置错误日志2. 问题所示3. 原理分析4. 解决方法1. 基本知识 主要补充一些基本知识的拓展 1.1 查找my.cnf目录 查看mysql默认读取my.cnf的目录: mysql --help|grep my.cnf 截图如下:(为了方便查看具体使用的配置文件在哪个路径)…

数据库悲观锁和乐观锁的区别

前言 MySQL本身不直接提供悲观锁&#xff08;Pessimistic Locking&#xff09;和乐观锁&#xff08;Optimistic Locking&#xff09;的实现机制&#xff0c;因为这些锁的概念通常是在应用层面通过不同的策略和工具来实现的。然而&#xff0c;我们可以利用MySQL的一些特性来模拟…

泰克THDP0100(Tektronix)thdp0100高压差分探头详情资料

泰克 THDP0100 高压差分探头具有较大的差分动态范围功能&#xff0c;为用户提供了安全的高压测量探头解决方案。每个探头都配有两种尺寸的钩尖&#xff0c;并具有超范围视觉和声音指示器&#xff0c;当用户超出探头的线性范围时会发出警告。泰克 THDP0100 探头配备 TEkVPI 接口…

实训day42(9.3)

⼀、编排分类 单机容器编排: docker-compose 容器集群编排: docker swarm、mesosmarathon、kubernetes 应⽤编排: ansible(模块&#xff0c;剧本&#xff0c;⻆⾊) ⼆、系统管理进化史 1. 传统部署时代 早期&#xff0c;各个组织是在物理服务器上运⾏应⽤程序。 由于⽆法限…

【Linux】倒计时|进度条|git|gdb的实现

目录 一、缓冲区 1.缓冲区概念&#xff1a; 2.缓冲区作用&#xff1a; 3.缓冲区刷新策略 4.缓冲区位置 5.总结 二、实现倒计时 三、进度条版本1️⃣ 四、进度条版本2️⃣ 五、使用git命令行 六、Linux调试器-gdb使用 背景 开始使用 一、缓冲区 1.缓冲区概念&…

如何提升网站权重?

提升网站权重的方法有很多&#xff0c;常规的方法包括内容优化、关键词研究、页面结构调整、提高用户体验等。但这些方法往往需要时间来见效。如果你希望在短时间内看到显著的提升&#xff0c;发外链是一个非常有效的策略。 外链是提升网站权重的有效方法&#xff0c;但需要注…