自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 【LeetCode题解(C语言)】数组中的第K个最大元素

直接快排,然后返回倒数第K的元素。void quick_sort(int s[], int l, int r){ if (l < r) { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 int i = l, j = r, x = s[l]; while (i < j) { while (i < j && s[j] >= x) // 从右向左找第一个小于x的数 ...

2020-06-29 21:16:41 494

原创 【LeetCode题解(C语言)】长度最小的子数组

这里提供两种解法。第一种方法,暴力法。初始化子数组的最小长度为无穷大,枚举数组nums中的每个下标作为子数组的开始下标,对于每个开始下标i,需要找到大于或等于i的最小下标j,使得从nums[i]到nums[j]的元素和大于或等于s,并更新子数组的最小长度(此时子数组的长度是j−i+1)。该方法的时间复杂度是O(N²)。int minSubArrayLen(int s, int* nums, int numsSize){ int sum,len,minlen = INT_MAX; ..

2020-06-29 16:55:39 488

原创 【LeetCode题解(C语言)】缺失的第一个正数

这里提供三种思路。第一种解法,如果不管时间复杂度和内存,可以从1开始依次枚举正整数一直到数组中的最大值,并遍历数组,判断其是否在数组中。这个解法时间复杂度是O(N),有点高。int firstMissingPositive(int* nums, int numsSize){ int MaxN = 0; int i, j; for (int i = 0; i < numsSize; ++i) if (nums[i] > MaxN) MaxN = nums[i]; ..

2020-06-29 01:29:18 614

原创 【LeetCode题解(C语言)】移除重复节点

我们对给定的链表进行一次遍历,并用一个哈希集合(HashSet)来存储所有出现过的节点。由于在大部分语言中,对给定的链表元素直接进行「相等」比较,实际上是对两个链表元素的地址(而不是值)进行比较。因此,我们在哈希集合中存储链表元素的值,方便直接使用等号进行比较。具体地,我们从链表的头节点 \textit{head}head 开始进行遍历,遍历的指针记为 \textit{pos}pos。由于头节点一定不会被删除,因此我们可以枚举待移除节点的前驱节点,减少编写代码的复杂度。这样枚举有什么好处?试想一..

2020-06-26 23:36:16 254

原创 【LeetCode题解(C语言)】最大公共前缀

纵向扫描字符串数组,当出现不一样的情况,跳出循环。代码如下:char * longestCommonPrefix(char ** strs, int strsSize){ if(strsSize==0) return ""; //如果字符串数组为空,直接返回"" for(int i=0;i<strlen(strs[0]);i++){ //i表示列,strlen(strs[0])表示第一个字符串长度 for(int j=1;j<strsSize;j+..

2020-06-15 22:23:35 213

原创 【LeetCode题解(C语言)】转变数组后最接近目标值的数组和

先使用快速排序算法让数组从小到大排序,遍历该数组,发现当前值大于“‘目标值target减去之前元素累加和的差’除以‘数组剩余元素的个数’”时,则返回“当前值之前的所有元素的平均值”。当第一个元素就大于“‘目标值target减去之前元素累加和的差’除以‘数组剩余元素的个数’”(这里等于目标值target除以数组的size),返回target/arrSize。代码如下:int cmp(const void* c1, const void* c2) { return *(int*)c1 - ..

2020-06-14 16:56:38 189

原创 【LeetCode题解(C语言)】爬楼梯

这是一个数学题,设这个函数是f(n),f(1)=1,f(2)=2,f(3)=3,下面开始推导f(n): f(4)=5,为什么呢?要上4个台阶,在上3个台阶的基础上再上一个台阶即可,所以至少有f(3)种方法,即:1+1+1+1,1+2+1,2+1+1。在这f(3)种方法中,有2种方法末尾以两个1结尾,那么这两个1阶可以合成一个2阶,便新生成了2种方法(1+1+2,2+2),所以f(4)=3+2=5。 f(5)=8,为什么呢?同样的道理,要上5个台阶,在上4个台阶的基础上...

2020-06-14 00:31:42 732

原创 快速随机搜索树(RRT)的MATLAB代码实现

快速随机搜索树(Rapidly-Exploring Random Tree)算法是移动机器人或机械臂常用的轨迹规划算法,用于规划出一条运动轨迹。其主要步骤分以下几步: 1. 初始化需要规划的2D或3D地图,给出移动机器人或机械臂要运动的起点和终点坐标,树的根部在起点。 2. 开始搜索并构建树。树的构建过程为:a) 首先在地图上随机选一点Prand...

2020-04-09 14:19:25 7260 29

原创 统计学习方法之感知机的Python代码实现

感知机是统计学习方法中的监督学习方法,是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学习旨在求出将训练数据进行线性划分的分离超平面。本文首先介绍感知机模型,然后叙述感知机的学习策略,特别是损失函数,接着介绍感知机学习算法,最后用一个实例说明并用Python编程实现。1.感知机模型假设输入空间(特征空间)是,输出空间是。输入表示实例的特征向量,...

2018-09-02 11:45:49 1205

原创 用Python实现一个小游戏——2048

学Python的时候,花了几天时间熟悉了一下语法。为了巩固语法,花了两天时间,随便写了个小游戏——2048,实现起来很简单,写完之后用pyinstaller把.py文件生成了一个exe文件,打开即用。上网搜了其他人的写法,发现别人的算法好简单,欢迎吐槽~主要步骤:1. 创建一个4*4的列表,为了打印出来美观,可以打印一些“——”和“|”分隔每个数。2. 按下“W”“S”“A”“D”键使

2018-01-21 16:21:39 11399 1

转载 基于Python的微信人工智障聊天机器人

转载一篇用Python实现微信自动聊天功能的文章。通过Python的itchat库调用图灵机器人的接口,可以实现人机自动对话。原文博主是在ubuntu16.04下进行开发的,本人是在Windows10环境下运行的,原文链接见http://blog.csdn.net/qq_22272261/article/details/77203235。Windows10下实现步骤:1. 首先,“WI

2018-01-16 10:36:30 1247

原创 Python面向对象之定义类和使用类

类是面向对象程序设计的基础,可以定义和指定类的对象。类中可以定义对象的属性(变量)和函数(方法)。 1. 声明类在Python中,可以使用class关键字来声明一个类,基本语法如下:#声明一个类class Child: def __init__(self, name, age, height, weight): #构造函数 self.__Name = ...

2017-12-08 22:15:53 1060

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除