- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 BM8 链表中倒数最后k个结点
描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)例如输入{1,2,3,4,5},2时,对应的链表结构如下图所示:其中蓝色部分为该链表的最后2个结点,所以返回倒数第2个结点(也即结点值为4的结点)即可,系统会打印后面所有的节点来比较。示例1输入:{1,2,3,4,5},
2022-05-10 16:42:09
164
1
原创 BM3 链表中的节点每k个一组翻转
描述将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。示例1输入: {1,2,3,4,5},2返回值: {2,1,4,3,5}示例2输入: {},1返回值: {}思路:先反转一组(反转链表),然后使用递归反转剩下的。递归三段式:确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑1、每次进入函数的头节点遍历链表k次,分出一组,若是后续不足K个节点,不用反转直
2022-05-02 12:18:33
167
原创 BM1 反转链表
描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤1000要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1输入: {1,2,3}返回值: {3,2,1}示例2输入: {}返回值: {}说明: 空链表则输出空思路:一、迭代法
2022-04-29 11:03:34
170
原创 NC21 链表内指定区间反转
描述将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。例如:给出的链表为 1\to 2 \to 3 \to 4 \to 5 \to NULL1→2→3→4→5→NULL, m=2,n=4m=2,n=4,返回 1\to 4\to 3\to 2\to 5\to NULL1→4→3→2→5→NULL.数据范围: 链表长度 0 < size \le 10000<size≤1000,0 < m \le n \
2022-04-28 19:25:26
136
原创 NC3 链表中环的入口结点
描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n\le10000n≤10000,1<=结点值<=100001<=结点值<=10000要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台会根据第二段是否为空将
2022-04-27 19:51:58
138
原创 NC4 判断链表中是否有环
描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。数据范围:链表长度 0 \le n \le 100000≤n≤10000,链表中任意节点的值满足 |val| <= 100000∣val∣<=100000要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。-1代表无环,其它的数字代表有环,这些参数解释仅仅是为了方便读者自测调试。实际在编程时读入的是链表的头节
2022-04-26 20:09:22
76
原创 NC2 重排链表
描述思路一、暴力(循环遍历链表,第一个节点后接最后一个节点,第二个接点接倒数第二个节点,以此类推)具体:定义指针P指向头节点,每次找到链表的最后一个节点将其接在p所指节点的后面,p指向下一个节点, 直到p后面节点数小于两个。class Solution {public: void reorderList(ListNode *head) { if(head == NULL)return ; ListNode* p = head; whil
2022-04-25 19:59:38
411
原创 BM11 链表相加(二)
描述假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。数据范围:0 \le n,m \le 10000000≤n,m≤1000000,链表任意值 0 \le val \le 90≤val≤9要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。示例1输入:
2022-04-24 20:28:59
79
原创 NC10 大数乘法
描述以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回。数据范围: 读入的数字大小满足 0 \le n \le 10^{1000}0≤n≤101000要求:空间复杂度 O(n)O(n),时间复杂度 O(n^2)O(n 2)示例1输入:“11”,“99”返回值:“1089”说明:11*99=1089示例2输入:“1”,“0”返回值:“0”思路两个数相乘积的长度最大为两个数的长度之和。所以首先定义一个存放结果的字符串。int len1 =
2022-04-23 21:03:26
99
原创 NC1 大数加法
描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:s.length,t.length \le 100000s.length,t.length≤100000,字符串仅由’0’~‘9’构成要求:时间复杂度 O(n)O(n)示例1输入:“1”,“99”返回值:“100”说明:1+99=100示例2输入:“114514”,“”返回值:“114514”思路:根据加法运算法则,对应位相加,不足位的补0例如:“1” 和“99” 先比较二者
2022-04-22 22:08:29
247
原创 VideoCapture类:
VideoCapture类:初始化import cv2cv2.VideoCapture(video)检查摄像头是否初始化成功result = cv2.VideoCapture.isOpened()if result is False: result=cv2.VideoCapture.open(0)捕获帧retval, image = cv2.VideoCapture.read()"""retval表示是否捕获成功,返回布尔类型。image返回捕获的帧信息(也就是图像)。如果没有捕获帧
2021-12-25 11:57:52
2235
原创 Pytorch transform
Pytorchtorchvision介绍torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision.transforms主要是用于常见的一些图形变换。以下是torchvision的构成: torchvision.datasets: 一些加载数据的函数及常用的数据集接口 torchvison.models :包含常用的模型结构(含预训练模型),例如AlexNet , VGG, ResNet tor
2021-12-24 19:29:26
2683
原创 python format 格式化函数
python format 格式化函数# 可以接受不限个参数,位置可以不按顺序a = "{} {}".format("hello", "world")# 不设置指定位置,按默认顺序print(a) #hello worldb = "{0} {1}".format("hello", "world") # 设置指定位置print(b)# hello worldc = "{1} {0} {1}".format("hello", "world")# 设置指定位置print(c)# world he
2021-12-24 19:26:24
476
原创 C++指针和引用
C++指针和引用指针:定义语法:数据类型(int ) 变量名(p)赋值 p=&a指针使用:通过操作指针变量指向的内存#include<iostream>using namespace std;int main(){ int a = 10; //int* p = a;报错 a是值,*p是地址 int* p = &a;//等价于 int* p;p=&a p是int*类型,指针p指向数据a的地址 cout << &a &l
2021-10-24 16:24:51
1775
原创 2021-05-12
有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。并返回一个包含给定查询 queries 所有结果的数组。示例 1:输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]]输出:[2,7,14,8]解释:数组中元
2021-05-12 16:46:50
70
原创 每日一题
给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。示例 1:输入:encoded = [3,1]输出:[1,2,3]解释:如果 perm = [1,2,3] ,那么 encoded = [1 XOR 2,2 XOR 3] = [3,1]
2021-05-11 17:51:02
180
原创 K-近邻算法的python实现
1、pandas包(1)DataFrame创建df = pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)其中index为行索引,coluns为列索引DataFramerowdata={'电影名称':['无问西东','后来的我们','前任3','红海行动','唐人街探案','战狼2'], '打斗镜头':[1,5,12,108,112,115], '接吻镜头':[10
2021-04-14 19:46:09
152
原创 利用python实现随机生成正态分布直方图
import numpy as np#numpy库支持数组与矩阵运算 import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来显示负号fig=plt.figure(figsize=(10,6))#绘图mu=3sigma=2.5'''随机生成正态分布随机数第一种方式mu:均值sigma:方差
2021-04-08 21:10:40
2941
2
原创 类的友元
友元函数是用friend修饰的非成员函数,在他的函数体中可以通过对象名访问类的私有和保护成员。#include<iostream>#include<cmath>using namespace std;class Point {public: Point(int xx = 0, int yy = 0); Point(Point& p); int getx(); int gety(); friend float dist(Point &p1,Poi
2021-03-12 12:50:03
231
原创 静态数据及函数
静态数据成员的使用#include<iostream>#include<cmath>using namespace std;class Point {public: Point(int xx = 0, int yy = 0); Point(Point& p); ~Point() { count--; } int getx(); int gety(); void showCount();private: int x, y; static in
2021-03-11 21:40:04
133
原创 2021-03-10
1.构造函数(一般用于初始化赋值)类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。可用于为某些成员变量设置初始值。#include using namespace std;class Line{public:void setLength( double len );double getLength( void );Line(); // 这是无参构造函数private:doubl
2021-03-10 23:00:16
65
基于python的网络聊天室.rar
2021-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人