自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (3)
  • 收藏
  • 关注

原创 数据结构-双链表插入数据

typedef struct Node{ int number; struct Node *pre; struct Node *next;}Node,*NodList;NodList NodInsert(NodList L,int num,int add){ NodList *r; r=(Node*)malloc(sizeof(Node)); r->pre=NULL; r->next=NULL; r->number=num; if(add==1) { hea.

2022-01-14 11:15:17 140

原创 数据结构-双链表的创建

typedef struct Node{ int number; struct Node *pre; struct Node *next;}Node,*NodList;NodList NodCreat(NodList L){ int num,x,cart=1; L=(Node*)malloc(sizeof(Node)); L->pre=NULL; L->next=NULL; scanf("%d",&num); scanf("%d",&x); L-&gt.

2022-01-14 10:35:11 196

原创 数据结构-单链表(C语言)

#include<stdio.h>typedef struct Node{ int number; struct Node *next;}Node,*NodListNodList nodinit(){ Node *L; L=(Node*)malloc(sizeof(Node)); if(L==NULL) printf("无法申请空间"); L->next=NULL;}NodList NodCreat(){ Node *L; L=(Node*)ma.

2022-01-14 10:10:17 193

原创 程序设计——指针

一个班有三个学生,每人四门成绩,需要输出平均分,并查找第n个学生成绩 要求:使用指针#include<stdio.h>int main(){ int per(int*p,int n);//定义可以求平均数的函数 void search(int(*p)[4],int n);//定义查找学生成绩的函数 int a[3][4]={{20,30,40,50},{30,40,50,60},{60,70,80,90}};//定义了数组 int (*p)[4],aver;/...

2022-01-03 23:30:37 610

原创 ZOJ-A + B Problem

Calculate a + bInputThe input will consist of a series of pairs of integers a and b,separated by a space, one pair of integers per line.OutputFor each pair of input integers a and b you should output the sum of a and b in one line,and with one line

2021-12-16 14:54:00 192

原创 时间复杂度和空间复杂度

前几期关于分治算法的讲解,这一块我几乎没讲,所以现在来补。时间复杂度时间复杂度指输入数据大小为NN时,算法运行所需花费的时间。算法运行时间受到编程语言 、计算机处理器速度、运行环境等多种因素影响,并与计算操作数量呈正相关。体现的是计算操作随数据大小变化时的变化情况。假设算法运行总共需要“1次操作”或“100次操作”,此两情况的时间复杂度都为常数级 O(1);即设需要操作 (k*n+b)次,无论k取何种有限数值,则时间复杂度都为O(n);当然对于双层嵌套循环for(i=0;...

2021-12-14 12:25:57 845

原创 力扣-盛最多水的容器(双指针)

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器代码:int maxArea(int* height, int heightSize){ int i,j=heightSize,max,h; max=height[0]>height[j-1]?(j-1)...

2021-12-12 12:31:40 293

转载 力扣-验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串代码:bool isPalindrome(char * s){ if(strlen(s)==0||strlen(s)==1)//先解决字符串长度为0或1的特殊情况 retur

2021-12-11 20:34:09 112

原创 力扣-数组中的第K个最大元素(分治法)

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4提示:1 <= k <= nums.length <= 104-104<= nums[i] <= 104代码:int findKthL..

2021-12-10 13:48:52 555

原创 力扣-颜色分类

给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]提示:n == nums.length1 <= n <= 300nums[i] 为 0、1 或 2代码:方法一..

2021-12-10 13:03:51 76

原创 力扣-删除排序数组中的重复项Ⅱ

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。代码是看别人的(写的很棒,太妙了!),自己写的太啰嗦了,而且不对于是将别人的代码搬了过来,但给了注释int removeDuplicates(int* nums, int numsSize){ int len = 0;//先定义数组长度为0 for (int i =

2021-12-09 20:42:38 157

原创 力扣-删除排序数组中的重复项

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。int removeDuplicates(int* nums, int numsSize){ int i,j; for(i=1;i<numsSize;i++) { if(nums[i]==nums[i-1]) {

2021-12-09 19:18:33 157

原创 删除字符串中指定字母 双指针

7-1 删除字符串中指定字母 (20 分)请使用指针的方法编写程序,程序的功能是从键盘输入一个字符串(字符串长度小于100),删除其中的字母a后输出。例如,输入字符串abcaca,输出bcc。输入样例:abcaca结尾无空行输出样例:bcc结尾无空行代码:#include<stdio.h>#define MAXN 100int main(){ int i,j=0; char a[MAXN]; gets(a); for(i=

2021-12-09 18:57:03 733

原创 算法导论—分治策略(C语言)

在分治策略中,我们递归的求解一个问题,在每层递归中应用以下三个步骤:1.分解 将问题划分为一个个子问题,子问题形式与原问题一致,只是规模更小2.解决 这里的解决是指递归的求解出子问题,或对子问题直接求解(当子问题足够小)3.合并 将子问题的解组合成原问题的解总的来说,分治策略即分而治之,再合。递归式递归式与分治方法是紧密相关的。递归式是通过更小的输入上的函数值来描述一个函数,它可以有很多形式。下面我们主要介绍三种求解递归式的方法:1.代入法 我们猜测一个界,...

2021-12-02 18:40:41 610

原创 力扣-移除元素

给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。法一:void moveZeroes(int* nums, int numsSize){ int i,j,k=numsSize-1; for(i=numsSize-1;i>=0;i--)//按逆序遍历每个元素 ...

2021-12-02 10:07:22 172

原创 冒泡排序法

冒泡排序法:冒泡排序属于一种典型的交换排序。交换排序顾名思义就是通过元素的两两比较,判断是否符合要求,如过不符合就交换位置来达到排序的目的。冒泡排序名字的由来就是因为在交换过程中,类似水冒泡,小(大)的元素经过不断的交换由水底慢慢的浮到水的顶端。#include<stdio.h> int main(){ int n[10], i, j, temp; for(i=0;i<10;i++) scanf("%d",&n[i]); for (i = 1; i <

2021-12-01 19:02:04 134

原创 数字结合体输出个数

给定数组大小#include<stdio.h>int main(){ char a[10]; int i,s=0; scanf("%s",a); for(i=0;i<9;i++) { if((a[i]>='a'&&a[i]<='z')&&(a[i+1]>='a'&&a[i+1]<='z'))//a a { continue; } if((a[i]>='a'&&a

2021-11-28 12:30:07 412

原创 力扣:搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请使用时间复杂度为 O(log n) 的算法。int searchInsert(int* nums, int numsSize, int target){ int i; for(i=0;i<numsSize;i++) { if(target<=nums[i]) return i; } re

2021-11-27 18:18:48 62

原创 力扣-寻找数组的中心下标

想要找出就数组的中心下标,主要有两种方法:1.将数组分为两部分,使中心下标对应的数左右两边值的和相等2.先计算总和,然后遍历计算left总和,如果left总和×2加当前值等于总和,就返回当前值方法一.int pivotIndex(int* nums, int numsSize){ int i,j,k,sum1=0,sum2=0; for(i=1;i<numsSize;i++) { for(j=0;j<=(i-1);j++)

2021-11-27 18:01:55 263

原创 算法导论:递归求解 寻找中间位置的最大子数组

//递归求解 寻找中间位置的最大子数组int search(int*data,int low,int mid,int high,int left,int right)//data为数组,low,mid,right三个边界将数组分为两部分,left,right为返回最大子数组的左右边界{ int left_sum=0,sum=0,i;//sum为临时子数组之和 for(i=mid;i>=low;i--)//i从mid开始向左遍历 { sum=sum+data[i];//sum存放[i,m.

2021-11-27 13:49:23 115

原创 算法导论:暴力求解 最大子数组问题

//暴力求解 最大子数组问题int search(int*data,int low,int high,int left,int right)//data为数组,low,right为数组边界,left,right存放返回最大子数组的左右边界{ int sum=0,i,j,sum_temp;//给sum赋初值为0,方便sum和sum_temp的第一次比较,sum_temp为临时存放数组和的元素 for(i=low;i<=high;i++)//用i遍历数组 { sum_temp=0;//规定.

2021-11-27 13:14:25 323

原创 算法导论 排序

直接插入排序法原理:从无序数列向左遍历,从有序数组向左比较 //插入排序法 void straightsort(int*arr,int len) { int temp,i,j; for(i=1;i<len;i++)//将首元素看成有序数组,i=1表示从第二个元素开始排序 { temp=arr[i];//temp存放待插入元素 for(j=i-1;j>=0&&arr[j]>temp;j--

2021-11-27 12:13:19 61

原创 无C不行—废物一个—学习第一天打卡:C语言,Python练习题(CN教程)

C语言:1.使用 printf() 输出 "Hello, World!"。#include<stdio.h>int main(){ printf("Hello,World!"); return 0;}2.使用printf()与%d格式化输出整数。#include<stdio.h>int main(){ int number; scanf("%d",&number); printf("%d",num...

2021-11-20 18:03:16 93

原创 题目:求解该线性规划对应的最大值z以及x1,x2,x3

代码如下:>> c=[2;3;-5];>> a=[2 -5 1;1 3 1];>> b=[10;12];>> aeq=[1 1 1];>> beq=[7];>> vlb=[0 0 0];>> vub=[inf inf inf];>> [x,fval]=linprog(-c,a,b,aeq,beq,vlb,vub);>> x>> fval

2021-11-06 18:48:38 155 1

空空如也

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

TA关注的人

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