当前位置: 首页 > 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版本 项目集成思路&…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...