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

算法知识点————数论和链表

1、n数和

2数和

  • 有序(递增):头尾相加,和目标值比较
  • 无序:哈希表(target - cur)

多数和:
​ 先排序
拿一个数(检测 i 和i-1 重复的不选择)
​ 2数和问题 (检测 去重)

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {int len = nums.size();vector<vector<int>> res; //结果是一个二元组 ,每个里面是个vectorint i,j,k;sort(nums.begin(),nums.end());//先排序for(i = 0;i<len -2;i++){ //先取一个数if( i > 0 && nums[i] == nums[i-1]) continue;//去重,重复元素就不取了int temp = 0 - nums[i]; //temp记录剩下两个数和的负值int l = i+1,r = nums.size()-1;//左右指针寻找值while( l < r){int sum = nums[l] + nums[r] ;if(sum == temp)//找到了{res.push_back({nums[i],nums[l],nums[r]}); //存到结果res中while(l < r && nums[l] == nums[++l]);//去重 l向后面移动while(l < r && nums[r] == nums[--r]);}else if (sum < temp){//和不够l++;}else {r--;}}}return res;}
};

2、回文数121 回文串abcba

  • 负数不是回文数字
  • 个位数都是回文数
  • 0结尾的数不是回文数
  • 从后往前取数 %10 然后和原来的数比较
  • 跳出while循环要么是num == x 要么是不等于(大于和小于)
  • 最后的可能是12和1或者12和12 或者1和12都算
class Solution {
public:bool isPalindrome(int x) {if(x < 0) return false;if(x < 10) return true;if(x%10 == 0) return false;int num = 0;while(num < x){//121num = num*10 + x%10;//当前值 12x/=10;//1}if(x == num || num == x/10 || x == num/10) return true;//else return false;}
};

3、两个链表对应两个数组然后相加,结果在链表中
1->5->8 对应851
1->6->3->9 对应9361

class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2,int carry =0) {if(l1 == nullptr && l2 == nullptr){return carry ? new ListNode(carry) : nullptr;//如果有进位,创建节点}if(l1 == nullptr) swap(l1,l2);//如果l1 是空的,l2一定不是空的 ,交换l1和l2保证l1非空int sum = carry+l1->val+(l2 ? l2->val :0);l1->val = sum%10;//节点保存数位l1->next = addTwoNumbers(l1->next,(l2 ? l2->next : nullptr),sum / 10);return l1;}
};

升级版本:两次反转链表,然后相加,结果返回反转

1->5->8 对应158
1->6->3->9 对应1639

class Solution {
public:ListNode* reverseList(ListNode* head){if(head == nullptr || head->next == nullptr) return head;auto newNode = reverseList(head->next);head->next->next = head;head->next = nullptr;return newNode;}ListNode *addTwo(ListNode* l1,ListNode* l2 ,int carry = 0){if(l1 == nullptr && l2 == nullptr){return carry ? new ListNode(carry) :nullptr;}if(l1 == nullptr) swap(l1,l2);carry += l1->val + (l2 ? l2->val : 0);l1->val = carry %10;l1->next = addTwo(l1->next ,(l2 ? l2->next : nullptr),carry/10);return l1;}ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//两次反转链表,然后相加,结果返回反转l1 = reverseList(l1);l2 = reverseList(l2);auto l3 = addTwo(l1,l2);return reverseList(l3);}
};

相关文章:

算法知识点————数论和链表

1、n数和 2数和 有序&#xff08;递增&#xff09;&#xff1a;头尾相加&#xff0c;和目标值比较无序&#xff1a;哈希表&#xff08;target - cur&#xff09; 多数和&#xff1a; ​ 先排序 拿一个数&#xff08;检测 i 和i-1 重复的不选择&#xff09; ​ 2数和问题 &am…...

NASA:ATLAS/ICESat-2 L3B 每日和每月网格极地海面高度异常 V003

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Daily and Monthly Gridded Polar Sea Surface Height Anomaly V003 ATLAS/ICESat-2 L3B 每日和每月网格极地海面高度异常 V003 简介 ATLAS/ICESat-2 L3B Daily and Monthly G…...

Java类设计模式

1、单例模式 核心&#xff1a;保证一个类只有一个对象&#xff0c;并且提供一个访问该实例的全局访问点 五种单例模式&#xff1a;主要&#xff1a;饿汉式&#xff1a;线程安全&#xff0c;调用效率高&#xff0c;不能延时加载懒汉式&#xff1a;线程安全&#xff0c;调用效率…...

Valhalla实现 使用Docker部署利用OSM(Mapbox)地图实现路径规划详细步骤

一. Valhalla基本概念 1. 背景介绍&#xff1a; 官网介绍文档&#xff1a;https://valhalla.github.io/valhalla/ Valhalla是一个开源的路由引擎&#xff0c;能够实现实时路径规划&#xff0c;处理大量请求返回最优路径。 基于 OSM 数据&#xff0c;结合灵活的多模式交通方式…...

blender解决缩放到某个距离就不能继续缩放

threejs中也存在同样的问题&#xff0c;原因相同&#xff0c;都是因为相机位置和相机观察点距离太近导致的。 threejs解决缩放到某个距离就不能继续缩放-CSDN博客 blender中的解决方案 1、视图中心->视图锁定->选择你想看的物体...

2022浙江省赛G I M

G - Easy Glide 题意 思路 由于数据范围比较小&#xff08;1e3&#xff09;,把所有的移动的时间转化为图论上的边权就可以了,再用dijkstra解决,注意如果用的是邻接表存的话要建双向边 代码 #include <map> #include <set> #include <queue> #include <…...

数据链路层 ——MAC

目录 MAC帧协议 mac地址 以太网帧格式 ARP协议 ARP报文格式​编辑 RARP 其他的网络服务或者协议 DNS ICMP协议 ping traceroute NAT技术 代理服务器 网络层负责规划转发路线&#xff0c;而链路层负责在网络节点之间的转发&#xff0c;也就是"一跳"的具体传输…...

在java中都是如何实现这些锁的?或者说都有哪些具体的结构实现

在Java中&#xff0c;多种锁机制的实现依赖于不同的类和接口。以下是一些常见的锁机制及其在Java中的具体实现&#xff1a; 1. 互斥锁&#xff08;Mutex&#xff09; 实现方式&#xff1a;Java中的互斥锁可以通过synchronized关键字或ReentrantLock类来实现。synchronized关键…...

用CSS创造三角形案例

6.3.2 用CSS创造三角形 用div来创建&#xff0c;角上是平分的&#xff0c;所以要是内部宽高为0&#xff0c;其他边透明&#xff0c;正好是三角形。 代码 div {border: 12px solid;width: 0;height: 0;border-color: transparent red transparent transparent; } 与伪元素aft…...

matlab-对比两张图片的Ycbcr分量的差值并形成直方图

%对比两张图片的Ycbcr分量的差值并形成直方图&#xff0c;改个路径就能用&#xff0c;图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); ycbcr1 rgb2ycbcr(I1); ycbcr2 rgb2ycbcr(I2); % …...

Chromium 使用安全 DNS功能源码分析c++

一、选项页安全dns选项如下图&#xff1a; 二、那么如何自定义安全dns功能呢&#xff1f; 1、先看前端部分代码调用 shared.rollup.jsclass PrivacyPageBrowserProxyImpl {.................................................................getSecureDnsResolverList() {re…...

10.1 刷题

C语言 C...

车辆重识别(2021ICML改进的去噪扩散概率模型)论文阅读2024/9/29

所谓改进的去噪扩散概率模型主要改进在哪些方面&#xff1a; ①对数似然值的改进 通过对噪声的那个方差和T进行调参&#xff0c;来实现改进。 ②学习 这个参数也就是后验概率的方差。通过数据分析&#xff0c;发现在T非常大的情况下对样本质量几乎没有影响&#xff0c;也就是说…...

828华为云征文|针对Flexus X实例云服务器的CPU和内存性能测评

目录 一、Flexus X实例云服务器简介 1.1 产品摘要 1.2 产品优势 1.3 本次测评服务器规格 二、CPU性能测试 2.1 操作说明 2.2 操作步骤 2.2 结果分析 三、测试内存负载 3.1 操作说明 3.2 操作步骤 3.3 结果分析 四、测试终评 一、Flexus X实例云服务器简介 1.1 产品…...

Python知识点:如何使用Google Cloud IoT与Python进行边缘计算

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Google Cloud IoT与Python进行边缘计算 边缘计算作为一种新兴的计算模式…...

力扣 最小覆盖子串

最小覆盖子串 https://leetcode.cn/problems/minimum-window-substring/ 题目描述 题目分析f 覆盖子串&#xff1a;首先根据题意&#xff0c;要求目标字符串的元素必须都在子串中出现过&#xff0c;这表明可以是乱序出现。所以在解决问题是我们需要对子串和目标字符串做匹配&a…...

python的内存管理机制

python的内存管理机制主要分为三个部分&#xff1a;引用计数、垃圾回收和内存池机制。 引用计数机制&#xff1a; python通过维护每个对象的引用计数来跟踪内存中的对象。当对象被创建时就会有一个引用计数&#xff0c;当对象不再被使用时&#xff0c;引用计数为0&#xff0c…...

阿布量化:基于 Python 的量化交易框架

阿布量化&#xff08;AbuQuant&#xff09; 是一个开源的量化交易框架&#xff0c;专为金融领域的研究者和交易者设计。它基于 Python 语言开发&#xff0c;提供了一整套从数据获取、策略开发、回测分析到交易执行的解决方案。阿布量化不仅能够帮助用户快速实现量化策略的设计与…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28目录前言1. Cognitive phantoms in LLMs through the lens of latent variables摘要研究背景问题与挑战创新点算法模型实验效果…...

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档&#xff1a; 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ&#xff0c;目前阿里云支持4.x和5.x版本 项目集成思路&…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...