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

复制带随机指针的链表最长连续递增序列数组的度写字符串需要的行数最短补全词

复制带随机指针的链表

来源:杭哥

138. 复制带随机指针的链表 - 力扣(LeetCode)

typedef struct Node Node;
Node* BuyNode(int x)
{Node* newnode = (Node*)malloc(sizeof(Node));newnode->val=x;newnode->next=NULL;newnode->random=NULL;return newnode;
}
struct Node* copyRandomList(struct Node* head) 
{if (head==NULL){return NULL;}Node* newnode=NULL;Node* cur=head;Node* newhead=BuyNode(cur->val);Node* cur2=newhead;cur=cur->next;while(cur!=NULL){newnode=BuyNode(cur->val);cur2->next=newnode;cur2=newnode;cur=cur->next;}Node* now1=head;Node* now2=newhead;cur=head;cur2=newhead;while(now1!=NULL){if (now1->random==NULL){now2->random=NULL;}else{cur=head;cur2=newhead;while(cur!=NULL){if (now1->random==cur){now2->random=cur2;}cur=cur->next;cur2=cur2->next;}}now1=now1->next;now2=now2->next;}   return newhead;
}
typedef struct Node Node;
Node* BuyNode(int x)
{Node* newnode = (Node*)malloc(sizeof(Node));newnode->val=x;newnode->random=NULL;newnode->next=NULL;return newnode;
}
struct Node* copyRandomList(struct Node* head) 
{if (head==NULL){return NULL;}Node* newnode=NULL;Node* prev=head;Node* cur=head->next;while(1){newnode = BuyNode(prev->val);prev->next=newnode;newnode->next=cur;if (cur==NULL){break;}prev=cur; cur=cur->next;}cur=head->next;prev=head;while(1){if (prev->random==NULL){cur->random=NULL;}else{cur->random=prev->random->next;}prev=prev->next->next;if (prev==NULL){break;}cur=cur->next->next;}Node* newhead=head->next;prev=head;cur=head->next;Node* fur=NULL;while(1){fur=cur->next;prev->next=fur;if (fur==NULL){break;}cur->next=fur->next;prev=fur;cur=cur->next;}return newhead;    
}
我想说:
  1. 一种方法的话是时间复杂度为o(N^2)的方法,第二种方法的话是时间复杂度为O(N)的方法。

  1. 第二种方法主要就是说,相当于在原先链表的基础之上,先给他插入一些新的拷贝节点,最主要关心的问题就是拷贝节点的random指针指向的位置,可以发现一个规律:拷贝节点的random指针指向的拷贝节点应该是其原先节点的random指针指向的节点的next指向的节点。


最长连续递增序列

来源:自己LeetCode刷题

674. 最长连续递增序列 - 力扣(LeetCode)

int findLengthOfLCIS(int* nums, int numsSize)
{int left=0;int right=1;int ans=1;while(right<numsSize){while (right<numsSize && nums[right-1]<nums[right]){right++;}ans=ans>(right-left)?ans:(right-left);left=right;right++;}return ans;
}
我想说:
  1. 蛮简单的,双指针。


数组的度

来源:自己LeetCode刷题

697. 数组的度 - 力扣(LeetCode)

#include <stdlib.h>
int cmp(const void* e1, const void* e2)
{return *((int*)e1)-*((int*)e2);
}
int findgap(int x,int *nums, int numsSize)
{int max=0;int min=numsSize;int l=-1;int r=-1;for (int i=0;i<numsSize;i++){if (nums[i]==x){min=min<i?min:i;max=max>i?max:i;}}return max-min+1;
}
int findShortestSubArray(int* nums, int numsSize)
{if (numsSize==1){return 1;}int obj=0;int ans=0;int arr[numsSize];for (int i=0;i<numsSize;i++){arr[i]=nums[i];}qsort(arr,numsSize,4,cmp);int left=0;int right=1;while(right<numsSize){while (right < numsSize  &&  arr[right]==arr[right-1]){right++;}if (right-left>ans){ans=right-left;obj=arr[left];}else if (ans==right-left){int obj1=arr[left];int gap1=findgap(obj1,nums,numsSize);int gap=findgap(obj,nums,numsSize);if (gap1<gap){obj=obj1;}}left=right;right++;}return findgap(obj,nums,numsSize);
}
我想说:
  1. 很遗憾,现在只会暴力解法。


写字符串需要的行数

来源:自己LeetCode刷题

806. 写字符串需要的行数 - 力扣(LeetCode)

#include <string.h>
int* numberOfLines(int* widths, int widthsSize, char * s, int* returnSize)
{int* p = (int*)malloc(sizeof(int)*2);int sz=strlen(s);int row=0;int sum=0;for (int i=0;i<sz;i++){int num=s[i]-97;if (sum+widths[num]>100){row++;sum=0;i--;}else{sum+=widths[num];}}p[0]=row+1;p[1]=sum;*returnSize=2;return p;
}

我想说:

  1. 字符的话在计算机眼里本质上也是一个整型。


最短补全词

来源:自己LeetCode刷题

748. 最短补全词 - 力扣(LeetCode)

int cmp(const void* e1, const void* e2)
{return tolower(*((char*)e1))-tolower(*((char*)e2));
}
char * shortestCompletingWord(char * licensePlate, char ** words, int wordsSize)
{int i=0;char lp[10]={0};int sz=0;int len=1010;char* ans=NULL;while(licensePlate[i]!='\0'){if (isalpha(licensePlate[i])){lp[sz++]=licensePlate[i];}i++;}qsort(lp,sz,1,cmp);for (i=0;i<wordsSize;i++){int sz1=strlen(words[i]);char str[sz1+1];strcpy(str,words[i]);qsort(str,sz1,1,cmp);int k=0;int j=0;while(k<sz && j<sz1){while (j<sz1 && tolower(lp[k])!=tolower(str[j])){j++;}if (j==sz1){break;}k++;j++;}if (k==sz){if (sz1<len){len=sz1;ans=words[i];}}}return ans;
}
我想说:
  1. 依托于排序解题,也算是暴力解法吧。


相关文章:

复制带随机指针的链表最长连续递增序列数组的度写字符串需要的行数最短补全词

复制带随机指针的链表来源&#xff1a;杭哥138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09;typedef struct Node Node; Node* BuyNode(int x) {Node* newnode (Node*)malloc(sizeof(Node));newnode->valx;newnode->nextNULL;newnode->randomNULL;…...

「ML 实践篇」回归系统:房价中位数预测

文章目录1. 项目分析1. 框架问题2. 性能指标2. 获取数据1. 准备工作区2. 下载数据3. 查看数据4. 创建测试集3. 数据探索1. 地理位置可视化2. 寻找相关性3. 组合属性4. 数据准备1. 数据清理2. Scikit-Learn 的设计3. 处理文本、分类属性4. 自定义转换器5. 特征缩放6. 流水线5. 选…...

深度学习 Day27——利用Pytorch实现运动鞋识别

深度学习 Day27——利用Pytorch实现运动鞋识别 文章目录深度学习 Day27——利用Pytorch实现运动鞋识别一、查看colab机器配置二、前期准备1、导入依赖项并设置GPU2、导入数据三、构建CNN网络四、训练模型1、编写训练函数2、编写测试函数3、设置动态学习率4、正式训练五、结果可…...

Springboot 整合dom4j 解析xml 字符串 转JSONObject

前言 本文只介绍使用 dom4j 以及fastjson的 方式&#xff0c; 因为平日使用比较多。老的那个json也能转&#xff0c;而且还封装好了XML&#xff0c;但是本文不做介绍。 正文 ①加入 pom 依赖 <dependency><groupId>dom4j</groupId><artifactId>dom4j…...

网络安全实验——安全通信软件safechat的设计

网络安全实验——安全通信软件safechat的设计 仅供参考&#xff0c;请勿直接抄袭&#xff0c;抄袭者后果自负。 仓库地址&#xff1a; 后端地址&#xff1a;https://github.com/yijunquan-afk/safechat-server 前端地址&#xff1a; https://github.com/yijunquan-afk/safec…...

【MySQL】MySQL的事务

目录 概念 什么是事务? 理解事务 事务操作 事务的特性 事务的隔离级别 事务的隔离级别-操作 概念 数据库存储引擎是数据库底层软件组织&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;使用数据引擎进行创建、查 询、更新和删除数据。 不同的存储引擎提供…...

Java分布式事务(七)

文章目录&#x1f525;Seata提供XA模式实现分布式事务_业务说明&#x1f525;Seata提供XA模式实现分布式事务_下载启动Seata服务&#x1f525;Seata提供XA模式实现分布式事务_转账功能实现上&#x1f525;Seata提供XA模式实现分布式事务_转账功能实现下&#x1f525;Seata提供X…...

二十八、实战演练之定义用户类模型、迁移用户模型类

1. Django默认用户模型类 &#xff08;1&#xff09;Django认证系统中提供了用户模型类User保存用户的数据。 User对象是认证系统的核心。 &#xff08;2&#xff09;Django认证系统用户模型类位置 django.contrib.auth.models.User&#xff08;3&#xff09;父类AbstractUs…...

Java Virtual Machine的结构 3

1 Run-Time Data Areas 1.1 The pc Register 1.2 Java Virtual Machine Stacks 1.3 Heap 1.4 Method Area JVM方法区是在JVM所有线程中共享的内存区域&#xff0c;在编程语言中方法区是用于存储编译的代码、在操作系统进程中方法区是用于存储文本段&#xff0c;在JVM中方法…...

linux ubuntu22 安装neo4j

环境&#xff1a;neo4j 5 ubuntu22 openjdk-17 neo4j 5 对 jre 版本要求是 17 及以上&#xff0c;且最好是 openjdk&#xff0c;使用比较新的 ubuntu 系统安装比较好&#xff0c; centos7 因为没有维护&#xff0c;yum 找不到 openjdk-17了。 官方的 debian 系列安装教程&a…...

模型实战(7)之YOLOv8推理+训练自己的数据集详解

YOLOv8推理+训练自己的数据集详解 最近刚出的yolov8模型确实很赞啊,亲测同样的数据集用v5和v8两个模型训练+预测,结果显示v8在检测精度和准确度上明显强于v5。下边给出yolov8的效果对比图: 关于v8的结构原理在此不做赘述,随便搜一下到处都是。1.环境搭建 进入github进行git…...

火车进出栈问题 题解

来源 卡特兰数 个人评价&#xff08;一句话描述对这个题的情感&#xff09; …~%?..,# *☆&℃$︿★? 1 题面 一列火车n节车厢&#xff0c;依次编号为1,2,3,…,n。每节车厢有两种运动方式&#xff0c;进栈与出栈&#xff0c;问n节车厢出栈的可能排列方式有多少种。 输入…...

Unity学习日记12(导航走路相关、动作完成度返回参数)

目录 动作的曲线与函数 创建遮罩 导航走路 设置导航网格权重 动作的曲线与函数 执行动作&#xff0c;根据动作完成度返回参数。 函数&#xff0c;在代码内执行同名函数即可调用。在执行关键帧时调用。 创建遮罩 绿色为可效用位置 将其运用到Animator上的遮罩&#xff0c;可…...

基于bearpi的智能小车--Qt上位机设计

基于bearpi的智能小车--Qt上位机设计 前言一、界面原型1.主界面2.网络配置子窗口模块二、设计步骤1.界面原型设计2.控件添加信号槽3.源码解析3.1.网络链接核心代码3.2.网络设置子界面3.3.小车控制核心代码总结前言 最近入手了两块小熊派开发板,借智能小车案例,进行鸿蒙设备学…...

汇编语言与微机原理(1)基础知识

前言&#xff08;1&#xff09;本人使用的是王爽老师的汇编语言第四版和学校发的微机原理教材配合学习。&#xff08;2&#xff09;推荐视频教程通俗易懂的汇编语言&#xff08;王爽老师的书&#xff09;&#xff1b;贺老师C站账号网址&#xff1b;&#xff08;3&#xff09;文…...

ASEMI代理瑞萨TW8825-LA1-CR汽车芯片

编辑-Z TW8825-LA1-CR在单个封装中集成了创建多用途车载LCD显示系统所需的许多功能。它集成了高质量的2D梳状NTSC/PAL/SECAM视频解码器、三重高速RGB ADC、高质量缩放器、多功能OSD和高性能MCU。TW8825-LA1-CR其图像视频处理能力包括任意缩放、全景缩放、图像镜像、图像调整和…...

什么是 .com 域名?含义和用途又是什么?

随着网络的发展&#xff0c;网络上出现了各种不同后缀的域名&#xff0c;这些域名的后缀各有不同的含义&#xff0c;也有不同的用途。今天&#xff0c;我们就一起来探讨一下 .com 后缀的域名知识。 .com 域名是一种最常见的顶级域名&#xff0c;它是由美国国家网络信息中心&…...

VueX快速入门(适合后端,无脑入门!!!)

文章目录前言State和Mutations基础简化gettersMutationsActions&#xff08;异步&#xff09;Module总结前言 作为一个没啥前端基础&#xff08;就是那种跳过js直接学vue的那种。。。&#xff09;的后端选手。按照自己的思路总结了一下对VueX的理解。大佬勿喷qAq。 首先我们需要…...

前列腺癌论文笔记

名词解释 MRF: 磁共振指纹打印技术( MR Fingerprinting)是近几年发展起来的最新磁共振技术&#xff0c;以一种全新的方法对数据进行采集、后处理和实现可视化。 MRF使用一种伪随机采集方法&#xff0c;取代了过去为获得个体感兴趣的参数特征而使用重复系列数据的采集方法&…...

Python+Yolov5道路障碍物识别

PythonYolov5道路障碍物识别如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<PythonYolov5道路障碍物识别>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…...

下载 | Win11 官方精简版,系统占用空间极少!(4月末更新、Win11 IoT物联网 LTSC版、适合老电脑安装使用)

⏩ 【资源A023】Win11 LTSC 2024 ISO系统映像 &#x1f536;Win11 物联网IoT LTSC版&#xff0c;默认无TPM等硬件限制&#xff0c;更方便老电脑安装使用。LTSC是长期服务渠道版本&#xff0c;网友俗称“老坛酸菜版”&#xff0c;相当于微软官方的精简版Win11&#xff0c;精简了…...

STM32F4的DSP库怎么在CLion里用起来?保姆级CMake配置指南(含FPU开启)

STM32F4的DSP库在CLion中的完整CMake配置指南&#xff08;含FPU优化&#xff09; 第一次在CLion里看到STM32的DSP库报错时&#xff0c;我盯着满屏的"undefined reference"发了半小时呆。作为从Keil转战CLion的老嵌入式开发者&#xff0c;我太清楚DSP库在信号处理项目…...

FPGA加速中性原子量子计算机的原子检测技术

1. 中性原子量子计算机的原子检测挑战量子计算领域近年来最激动人心的进展之一&#xff0c;就是中性原子量子计算机的快速发展。这种量子计算机利用激光镊子&#xff08;光学镊子&#xff09;阵列来捕获和排列中性原子&#xff08;如铷、铯等碱金属原子&#xff09;&#xff0c…...

DSP架构设计与低功耗优化关键技术解析

1. DSP架构基础与性能挑战数字信号处理器&#xff08;DSP&#xff09;与传统微控制器在架构设计上存在本质差异。微控制器主要面向控制任务——处理输入数据、做出决策并调整输出设备状态&#xff0c;而DSP的核心使命是维持连续数据流的高效处理。这种差异直接体现在硬件架构的…...

KMS_VL_ALL_AIO:基于微软官方协议的系统激活工具技术解析

KMS_VL_ALL_AIO&#xff1a;基于微软官方协议的系统激活工具技术解析 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款基于微软KMS&#xff08;密钥管理服务&#xff09;协议…...

对比直接使用厂商API,通过Taotoken调用大模型的延迟体感差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商API&#xff0c;通过Taotoken调用大模型的延迟体感差异 1. 关于延迟体感的说明 在接入大模型服务时&#xff0c;…...

ECharts地图可视化踩坑实录:从GeoJSON数据获取到本地开发跨域问题的全链路解决

ECharts地图可视化实战指南&#xff1a;从数据获取到跨域问题解决的全流程解析 地图可视化是现代数据展示的重要手段之一&#xff0c;而ECharts作为国内最流行的可视化库之一&#xff0c;其地图功能被广泛应用于各类项目中。但在实际开发过程中&#xff0c;从数据获取到最终呈现…...

Transformer架构优化实战2026:注意力机制、KV Cache与推理加速完整指南

Transformer架构诞生已近十年&#xff0c;但它的工程优化故事才刚刚开始。2026年&#xff0c;理解并掌握Transformer的核心优化技术&#xff0c;是每个LLM工程师的必修课。一、为什么Transformer的优化如此重要一个7B参数的LLM在A100上推理时&#xff0c;如果没有优化&#xff…...

网盘直链下载助手终极指南:八大网盘不限速下载完整教程

网盘直链下载助手终极指南&#xff1a;八大网盘不限速下载完整教程 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

保姆级教程:用neo4j-admin import命令搞定CSV数据批量导入(附中文乱码解决方案)

从Excel到知识图谱&#xff1a;Neo4j CSV数据导入全流程避坑指南 当你第一次面对海量业务数据需要转化为可视化知识图谱时&#xff0c;那种既兴奋又忐忑的心情我深有体会。作为曾经同样从Excel表格堆里摸爬滚打过来的实践者&#xff0c;我将带你用最稳妥的方式跨过Neo4j数据导入…...