• 等级
  • 3214 访问
  • 23 原创
  • 0 转发
  • 330285 排名
  • 1 评论
  • 5 获赞

[Java] Palindrome Number

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: true Example 2: Input: -121 Output: false Explanation...

2018-11-02 21:43:29

[Java] Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing with a...

2018-11-02 19:35:36

Java—final关键字

final关键字——终结器 在Java中final被称为终结器,可以使用final来定义类、方法、属性。 一、final修饰类 当一个类被final修饰,表示该类不能拥有子类(该类不允许被继承) 一旦一个类被final修饰,该类的所有方法都会默认加上final(成员变量不会加final) final class A {}//该类不能拥有子类 Java中的String类以及八大基本数据类型的包...

2018-10-29 19:27:49

Java—内部类

文章目录一、内部类的定义与使用二、内部类的优点 一、内部类的定义与使用 在类的内部进行其他结构类结构嵌套操作 二、内部类的优点 内部类与外部类可以方便的访问彼此的私有域(包含私有方法、私有属性) class Outter { private String msg = "Outter"; //内部类 class Inner { private String...

2018-10-24 21:21:07

链表面试题

2018-10-21 21:10:37

实现单链表

单链表是一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素。单链表的结点由数据元素以及下一个数据元素存放的地址构成。 现将单链表的实现整理如: //单链表的实现 typedef int DataType; typedef struct SListNode { struct SListNode* _next; DataType _data; }SListNode;...

2018-10-12 14:14:32

实现动态顺序表

静态顺序表和动态顺序表之间的区别就是静态顺序表的存储大小一旦设定好之后便不能修改;显然动态顺序表采用的是动态分配内存,容量是可以增加的,当然动态顺序表要比静态顺序表多增加一个监测容量的参数,每当当前容量存满的时候就要触发扩容机制,实现动态开辟内存。由于两者差别不是很大,这里我就只实现动态顺序表,静态的基本一样,只是少了扩容机制。(这里我设置的初始容量为3,便于我们观察扩容机制) 现将动态顺序表的实...

2018-10-10 20:37:23

算法复杂度

时间复杂度 空间复杂度的计算 1:实现二分查找算法的递归及非递归。(分析时间复杂度及空间复杂度) 2:实现斐波那契数列的递归及非递归。(分析时间复杂度及空间复杂度) 3:扩展了解尾递归 算法复杂度分为时间复杂度和空间复杂度 时间复杂度空间复杂度 时间复杂度 时间复杂度是指执行算法所需要的计算工作量。 来看下面的例子: void Test(int n) { int iCount = 0...

2018-10-08 20:20:35

回溯法实现迷宫

回溯法的整体思想是: 当搜索到某个结点发 现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一 个结点,继续搜索该节点外的其他尚未搜索的分支;如果发现该结点 无法再搜索下去,就让搜索过程回溯到这个结点的前一结点继续这样 的搜索过程;这样的搜索过程一直进行到搜索到问题的解或者搜索完 了全部可搜索分支没有解存在为止。 这里介绍三种迷宫的实现方法 一、简单迷宫——只有一条通路且迷宫...

2018-08-29 15:49:11

汉诺塔问题

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 把题目抽象出来就是:已知有A、B、C三个柱子,A柱子上有从小到大叠放的n个圆盘,现要求我们将A柱子上的...

2018-08-26 13:56:05

小青蛙跳台阶问题

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法? 我们先来分析一下这道题目,假设台阶只有一级,那么显然只有一种跳法;要是有两级台阶,那么就有两种跳法:一种是一次跳一级台阶,一种是一次跳两级台阶;要是有三级台阶,青蛙的第一步就有两种跳法:当青蛙第一步跳了一级台阶,那么就只剩下了两级台阶,将问题转化成为两级台阶的跳法,当青蛙第一步跳了两级台阶,那么...

2018-08-22 16:35:17

结构体、枚举、联合

目录 结构体 结构体类型的声明 结构体成员的访问 结构体的自引用 结构体的不完整声明 结构体变量的定义和初始化 结构体内存对齐 枚举 联合 结构体 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。 结构体类型的声明 结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体...

2018-08-14 22:09:15

深度理解指针

指针 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。 重点介绍以下内容: 指针数组 数组指针 数组传参、指针传参 函数指针 函数指针数组、指向函数指针数组...

2018-07-30 21:59:56

可变参数列表

有时,我们需要实现一个函数并希望这个函数可以传递可变数量的参数,就需要用到可变参数。它允许定义一个函数,能根据需求具体接受可变数量的参数。如下: int fun(int n, ...) { //... } int main() { fun(2,3,4); fun(4,1,2,5,6); return 0; } fun()函数中的...代表可变参数,省略号前的in...

2018-06-26 19:44:42

函数的调用过程(栈帧)

首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(低地址)。 通过一个栗子来研究一下函数的调用过程 #include <stdio.h> int Add(int x, int y) { int z = 0; ...

2018-06-19 22:58:33

小游戏——三子棋(智能)

三子棋就是人们俗称的井字棋,只要三个棋子连成一条直线,就赢了。但如果两个人都掌握了技巧,一般来说都是平局。 我们的思路就是先打印棋盘,然后让玩家和电脑分别走,最后判断输赢。要想不让电脑随机下,智能一些的话,就很有意思了。(这里呢我先写成列出所有情况进行判断,日后学习到了更好地方法再来改进我的代码) 这里介绍几个难点: 1.打印棋盘 在打印棋盘的时候可以打印成通用的可扩展的棋盘,例如我们...

2018-05-29 19:14:02

小游戏——扫雷(可以标记)

这款游戏相信大家并不陌生,关于它的玩法,在这里就不赘述了,重点来介绍一下如何用C语言完成这个项目。我们先来思考一下,扫雷的棋盘肯定是通过二维数组来实现的,在这个二维数组中既要埋雷,又要扫雷,还得给玩家展示,实在是容易混淆,这里我们不妨通过两个二维数组来实现,一个用来埋雷,另一个用来扫雷并且这个棋盘可以向玩家展示,降低了难度。 首先,我们来屡一下这个游戏的思路。 埋雷;这里可以设置难度扫1...

2018-05-23 22:41:22

C语言操作符总结

C语言操作符分类: 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号引用操作符 下标引用、函数调用和结构成员 算术操作符 + - * / % 1. 除了%操作符之外,其他的几个操作符可以用作于整数和浮点数。 2. .对于/操作符,如果两个操作符都为整数,执行整数除法,而只要有浮点数执行的就是浮点数的除法。 ...

2018-05-12 22:55:40

辗转相除法求最大公约数

给定两个整数 a,b的值,r表示取模后余下的数。若a%b==0,则直接输出b为最大公约数;若a%b!=0,则进入循环,一直取模求余,直到a%b==0为止。例如:a = 24,b = 32;r = a%b =24;(r!=0进入循环)a = 32, b = 24;r = a%b = 8 ;(r!=0进入循环)a = 24,b = 8;r = a%b =0;(r==0跳出循环)输出最大公约数:8代码如...

2018-05-02 20:42:57

C语言——用“*”输出一个菱形

   如何输出如图所示的菱形先要将菱形分为上下两个三角形(例如图示,上为7行的正三角,下为6行的倒三角),接下来通过两个循环分别输出这两部分。首先设置变量line代表上行数,通过键盘输入,接着设置三个变量 i, j, k( i 控制循环次数, j 控制空格数, k 控制“*”的个数)。在上三角中,循环line次,行数 =i+1,空格数=line-行数=line-(i+1),“*”的个数=2*行数-...

2018-05-02 15:34:16

Lsxlsxls

关注
奖章
  • 持之以恒
  • 1024勋章