- 博客(26)
- 收藏
- 关注
原创 LeedCode---【203】【移除链表元素】
一、原题要求:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路:递归:每次对头进行判断是否此值等于给定值val,如果相等则将此节点删除,将下一个节点作为头节点递归调用自己,否则将此节点的下一个节点为作为头节点递归调...
2018-11-26 22:44:17 187
原创 LeedCode---【237】【删除链表中的节点】
一、原题要求:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么...
2018-11-26 22:32:57 217
原创 LeedCode---【147】【对链表进行插入排序】
一、原题要求:对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适...
2018-11-25 22:34:46 208
原创 LeedCode---【142】【环形链表II】
一、原题要求:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。解题思路: 创建两个指针一个每次走两步,一个每次走一步,若单链表带环,则在第一个指针不会找到尾节点,而且第一个会在环内已知循环知道和第二个指针相遇才能退出循环,同时返回这个节点位置; 若带环则让快指针指向头结点,然后让两个指针同时走,...
2018-11-24 18:52:48 213
原创 LeedCode---【141】【环形链表】
一、原题要求:给定一个链表,判断链表中是否有环。解题思路: 判断是否带环:用快慢指针。快指针每走两步,慢指针走一步,如果两者在某个点相遇,则链表带环。二、代码实现:/** * 原题要求: * 给定一个链表,判断链表中是否有环。 * 思路: * 判断是否带环:用快慢指针。快指针每走两步,慢指针走一步,如果两者在某个点相遇,则链表带环。 * * @ClassName...
2018-11-24 18:45:10 187
原创 LeedCode---【82】【删除排序链表的重复元素II】
一、原题要求:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3解题思路: h -> 1 -&g
2018-11-20 22:59:31 161
原创 LeedCode---【83】【删除链表中的重复元素】
一、原题要求:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解题思路:遍历链表,如果pre和cur的val相同的话pre.next = cur.next,然后cur = cur.ne...
2018-11-20 22:50:48 143
原创 LeedCode---【61】【旋转链表】
一、原题要求:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋
2018-11-18 20:26:08 187
原创 LeedCode---【24】【两两交换链表节点】
一、原题要求:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。解题思路:使用一个新的节点pre来辅助操作,对要进行交换的链表,每两个的位置进行交换, 并且...
2018-11-17 20:13:12 174
原创 LeedCode---【206】【反转链表I】
一、原题要求:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NUL二、代码实现:/** * 题目要求: * 反转一个单链表。 * * 示例: * * 输入: 1->2->3->4->5->NULL *
2018-11-16 16:01:43 246
原创 LeedCode---92】【反转链表II】
一、原题要求:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL示例:/** * 反转从位置 m 到 n 的链表。请使用一趟扫描完成反...
2018-11-16 15:54:32 183
原创 LeedCode--【86】【分割链表】
一、原题要求:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:/** * 题目要求: * <p> * 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 * 你应当保留两个分区中每个节点的初始相对位置。 ...
2018-11-16 14:20:25 198
原创 LeedCode【021】【MergeTwoSortedLists】
一、原题要求:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路* 使用头结点root进行辅助操作,创建一个头结点,再使用两个引用指向两个链表的头结点,* 将较小的结点值的结点摘下来接到r...
2018-11-15 22:09:24 164
原创 LeedCode--【19】--【删除链表的倒数第 n 个节点】
一、原题要求:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路: 使用两个指针,...
2018-11-15 21:56:43 225
原创 小游戏---扫雷(C语言实现)
一、分析游戏步骤:具体步骤如图: 二、代码实现:游戏步骤想好之后,就是用代码把步骤一步一步的实现。具体代码如下:1、游戏主要实现: game.c#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void game(){ char mine[ROW + 2][COL + 2]; ...
2018-11-14 12:23:35 417
原创 小游戏——三子棋(C语言实现)
一、游戏步骤三子棋的实现其实很简单,只要思路理清,然后按照步骤一步一步的用代码实现就可以了。具体步骤如下:1、游戏开始。(打印一个游戏菜单)2、打印游戏棋盘。3、玩家走棋,判断该坐标是否有效,无效,提示重新输入。有效,打印棋盘;然后判赢,赢,游戏结束;4、电脑走棋,打印棋盘,并且判赢。赢,游戏结束;步骤如图:二、代码实现:1、主要实现:game.c代码如下:...
2018-11-14 12:11:37 566
原创 Java语言实现双链表
java语言实现双链表其实很简单,双链表的基本操作有:增、删、改、差、取得指定节点的内容、判空、节点个数、清除、输出。相对比较难一点的是链表的删除,这里说明一下具体的实现删除可以在外部写一个删除的方法,此处用的方法非常容易理解,不用像以前那样考虑是否为头结点、是否为空等等,只需要两步操作即可。具体操作在代码中展示:代码实现如下:interface ILink { void add...
2018-11-06 18:17:34 183
原创 内部类总结
在说内部类之前提一下成员方法、静态方法、普通方法。因为内部类和成员方法很相似成员方法:成员方法不能存在静态变量,成员方法可以访问静态变量。静态方法:静态方法可以存在静态变量,静态方法不能访问普通变量。静态方法不能访问类中普通属性(静态方法没有对象产生,普通属性和对象有关),但是静态方法可以访问静态属性普通方法可以访问类中静态属性,但是普通方法可访问类中普通属性 内部类定...
2018-10-29 16:48:25 229
原创 JavaSE之三个特殊类(一、String类)
String类的两种实例化方式 (1)、直接赋值:public class Test1{ public static void main(String[] args) { String str = "hello"; // str是一个对象,“hello”应该保存在堆中 System.out.println(str); }}在JV...
2018-10-23 18:44:32 273
原创 模拟实现strcpy和strcat的函数实现
#include<stdio.h>#include<Windows.h>#include<assert.h>char* my_strcpy(char* dest, const char* src){ char *ret1 = dest;//记录目标字符数组的地址 assert(dest != NULL); assert(src != NULL...
2018-09-24 22:43:51 230
原创 n的阶乘和前n项的阶乘
#include<stdio.h>#include<Windows.h>void Mimi(int n){ int i = 0; int sum = 1; int num = 0; if (n <= 0) { printf("客官用心点哦:\n"); return 0; } else for (i =1;i<=n; i++)...
2018-09-24 10:08:00 1252
原创 strcpy的模拟实现
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;math.h&amp;gt;#include&amp;lt;Windows.h&amp;gt;#include&amp;lt;assert.h&amp;gt;#include&amp;lt;string.h&amp;gt;char*
2018-09-22 18:12:23 217
转载 水仙花数的解法
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:1。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407一位自幂数:独身数两位自幂数:没有三位自幂数:水仙花数四位自幂数:四叶玫瑰数五位自幂数...
2018-09-21 23:12:26 987
转载 逻辑与或和按位与或的区别
逻辑与或和按位与或的区别,按位与的符号和按位或的符号经过第一个条件就能判断整个条件的真假,还要对第二个条件进行判断,最后才2个结果结合起来判断是真还是假。逻辑与&& , 逻辑或 ||逻辑与&&表示的是交集,2个条件同时成立,结果才为真逻辑或 ||表示的并集,只要有一个条件成立,结果就为真按位与& , 按位或 |运算的结果和逻辑与或的是一样的逻辑与...
2018-09-21 17:42:18 11805
转载 二分搜索的时间复杂度O(logN)如何得到
转自:http://yixiong89921.blog.163.com/blog/static/132537788201122105228637/学过数据结构,当然当年也学过算法的时间复杂度的,不知道当年是不是会推倒时间复杂度,大概也就是根据基本语句的执行次数来获得最高的数量级吧例如i=0;while(i<n){i++};//这条语句执行了N次i=0;j=0;while(i&l...
2018-09-18 23:17:35 3758
转载 二分搜索的模板
引用自:http://www.cnblogs.com/yuzhangcmu/p/4049030.htmlFind Minimum in Rotated Sorted ArrayQuestion SolutionSuppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 ...
2018-09-18 23:16:27 139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人