自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer——剪绳子(动态规划)

剪绳子问题:题目:动态规划思路就是将一个大问题不断拆分成各个小问题来进行解析,这道题就是当绳子长度为1时,最大乘积为0当绳子长度为2时,可以剪成1*1,最大乘积为1当绳子长度为3时,可以剪成(1*2,1*1*1),最大乘积为2当绳子长度为4时,可以剪成(1*1*1*1, 1*2*1, 2*2, 1*3),最大乘积为4当绳子长度为5时,可以剪成(1*1*1*1*1, 1*2*2, 3*2, 1*2*1*1, 1*3*1,1*4),最大乘积为6当绳子长度n大于等于4时,f(n) = ma.

2021-12-22 20:39:29 630

原创 栈的基本操作

栈的基本定义:栈是“先进后出”的性质,这是一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。但函数只能在栈顶操作。一.定义结构体typedef int STDataType;typedef struct Stack{ STDataType* a; int capacity; int top;}ST;如果想改变数据类型,就可以直接将int改为需要的数据类型。二.初始化栈void StackInit(S...

2021-11-08 23:30:33 437

原创 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

题目要求:为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。示例:一.判断是否有环 判断是否有环的方法就是定义两个指针,一个快指针,一个慢指针,快指针一次走两步,慢指针一次走一步,如果走到某一位置时,快指针和满指针相同,那么就可以证明有环。具体如下:代码如下:bool hasCycle(st...

2021-11-04 11:54:51 452

原创 c语言之要求写一个函数,将字符串中的空格替换为%20

题目:要求写一个函数,将字符串中的空格替换为%20。样例: “abc defgx yz” 转换成 “abc%20defgx%20yz”一.创建新的字符串根据题目要求,我们可以创建两个字符串,一个字符串用来放原字符串,另一个可以遍历后成新的字符串。新的字符串就是将旧的字符串里面的空格改成%20。这种算法也比较简单就是单纯的从前面往后面遍历,遇见空格就改成%20。具体代码如下:void repace(char arr[], char arr1[]){ int i = 0; i

2021-08-31 22:28:56 932 17

原创 C语言之qsort函数

一.qsort函数原型qsort 功 能: 使用快速排序例程进行排序,这个函数是根据二分法写的,其时间复杂度为n*log(n)#include<stdlib.h>void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *))各参数:1. 待排序数组首地址(可直接输入待排序数组名,或是指向数组的指针)2. 数组中待排序元素数量(可以用sizeof()来求)3. 各元素

2021-08-23 19:48:23 577 14

原创 C语言之函数调用及栈帧分析

一.前言每一次函数调用都是一个过程。这个过程我们通常称之为:函数的调用过程。这个过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存,现场保护。这块栈空间就是函数栈帧。实验代码:#include<stdio.h>int add(int a, int b){ return a + b;}int main(){ int a = 10; int b = 20; int c = 0; c = add(a, b); printf("%d", c); ret.

2021-08-20 16:15:08 828 21

原创 深度剖析数据在内存中的存储

一.数据类型的介绍 我们所学的数据大致可以分成以下几类一类是整形数据(char,short,int,long)一类是浮点型数据(float,double)一类是构造类型数据(数组类型,结构体类型(struct),枚举类型(enum),联合类型(union))还有一类是指针类型(int *,char *,float *,double *)最后一个就是空类型void二.整形在内存中的存储计算机中数据的存储有三种形式:原码(将数据按照正负号的形式直接写成二进制)反码(正数.

2021-08-16 20:32:07 348 42

原创 统计二进制中1的个数

要求:写一个函数返回参数二进制中 1 的个数。比如: 150000 11114 个 1一.除二判断法第一种方法比较简单,就是把这个数除以二,判断是否为1,满足条件,就加1;然后在除以2,(如果是10进制的话除以10,2进制除以2);int num(unsigned int i){ int count = 0; while (i) { if (i % 2 == 1) { count++; } i = i / 2; } return count...

2021-08-09 17:54:57 718 70

原创 调整数组使奇数全部都位于偶数前面(调整奇数偶数顺序)

要求:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。实现:我们可以从数组的两边找起,最左边和最右边可以有四种情况1.左边是奇数,右边是偶数(不用调整)2.左边是奇数,右边是偶数(左边的不用调整,继续往后找,右边的不动)3.左边是偶数,右边是偶数(右边的不用调整,继续往前找,左边的不动)4.左边是偶数,右边是奇数(左右两个数互换)一.输入数组,并找到最左右元素的下标int arr[10] =

2021-08-06 16:13:59 966

原创 求1到10000的水仙花数(c语言)

题目:求出0~100000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。看到题目我们先要确定要做的几个事情1.先算出给定的数的位数n2.算出这个数的各个位上的数的n次方3.然后将这些数加起来和给定的数相比,如果相同则为水仙花数一.求给定数的位数int tem(int i){ int count = 1; while (i / 10) { count

2021-08-05 20:34:55 3020

原创 猜数字游戏

今天给大家讲解一个好玩的小游戏,猜数字游戏,相信大家以前小时候也玩过,就是你说一个数,我会告诉你大了还是小了,直到你猜中为止。好,接下来就让我们开始这个小游戏: 一.首先:我们要写一个菜单:选择1你就会进入游戏界面,选择2你就会离开这个游戏 二.我们要找到一个随机数,这也是你要猜的一个数,这时候我们需要调用两个函数来生成随机数,一个是rand(),另一个是srand() rand可以生成0-RAND_MAX的随机数,使用之前要初始化随机数...

2021-08-04 15:41:49 165

原创 扫雷游戏(C语言)

扫雷:一.基本步骤1.建立游戏菜单menu2.创建一个棋盘并初始化3.将初始化后的棋盘打印4.布置雷的个数和位置5.打印棋盘6.排查雷二.创建游戏菜单void menu(){ printf("**********************\n"); printf("*******1.play *******\n"); printf("*******0.exit *******\n"); printf("**********************\n");}

2021-08-03 15:54:29 855

原创 三子棋游戏

一.基本步骤1.建立游戏菜单menu2.创建一个棋盘并初始化3.将初始化后的棋盘打印4.玩家落子并打印棋盘(玩家输入行列坐标的方式来落子)5.判定胜负关系(玩家是否获胜?有则直接游戏结束无则继续进行)6.电脑落子并打印棋盘(随机位置落子,判定胜负关系)7.若无胜负关系出现则继续交替下棋直至出现胜负或和棋。二.创建游戏菜单void menu(){ printf("**********************\n"); printf("*******1.play *******

2021-08-02 15:56:48 451 50

空空如也

空空如也

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

TA关注的人

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