
算法
文章平均质量分 66
edgar_01112
这个作者很懒,什么都没留下…
展开
-
回文序列
3第一天开通博客从此有了记流水账的平台,再也不用担心学的东西记不住了~~~第一篇 回文串:要求:输入一个字符串判读是否是回文串及镜像串。输入串保证不含数字0.回文串就是反串以后与原串相同如abba。镜像串就是左右镜像之后与原串相同如3AIAE和2S。原创 2014-12-09 09:07:46 · 749 阅读 · 0 评论 -
N皇后的问题
N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)import org.junit.Test;/** * @author Administrator *递归逐行放置n皇后,可以避开条件 “整个第i行的位置都不能放置” *利用一个数组record来保存已经放置的皇后位置,假设数组为record re原创 2016-05-06 21:49:42 · 808 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
字符串的组合: 给一个字符串,比如ABC, 把所有的组合,即:A, B, C, AB, AC, BC, ABC, 都找出来。 解题思路: 假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个字符,我们有两种选择:一是把这个字符放到组合中去,接下来我们需要在剩下的n-1个字符中选取m-1个字符;二是不把这个字符放到组合中去,接下来我们需要在剩下的n-1个字原创 2016-05-06 15:22:01 · 681 阅读 · 0 评论 -
单链表的归并排序
本题目来源于LeetCode,具体如下:Sort a linked list in O(n log n) time using constant space complexity.题目要求复杂度O(nlogn),因此我们很自然考虑使用快速排序或者归并排序,但是后来经过实践证明,使用快速排序总是AC超时,归并排序则可以正确AC。分析一下原因,个人认为是与测试数据有关,因为原创 2016-05-17 14:04:38 · 479 阅读 · 0 评论 -
Binary Tree Zigzag Level Order Traversal 二叉树ZigZag打印
Binary Tree Zigzag Level Order Traversal My SubmissionsQuestionEditorial SolutionTotal Accepted: 61552 Total Submissions: 213085 Difficulty: MediumGiven a binary tree, re原创 2016-05-26 20:08:00 · 563 阅读 · 0 评论 -
丑数
题目:我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。方法一:遍历法使用遍历法求第k个丑数,从1开始遍历,如果是丑数则count++,直到count==k为止。那么如何判断丑数呢?根据丑数的定义,丑数只有2,3,5这三个因子,那么我们就拿数字除以这三个因子。具体算法转载 2016-05-11 15:12:56 · 428 阅读 · 0 评论 -
统计从1到n中1的个数
问题:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N= 2,写下1,2。这样只出现了1个“1”。N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。问题一:写一个函数f(N),返回1到N之间出现1的个数,比如f(12)= 5。解法一转载 2016-05-11 11:21:24 · 6181 阅读 · 0 评论 -
Graph creat And DFS 邻接表实现图并进行DFS遍历
java代码实现图数据结构 邻接表实现方法package com.seu.edu.Graph;import java.util.*;/**用到的数据结构 * 一个VertexNode是顶点表 包括顶点和指向下一个邻接点的指针 * 一个是EdgeNode 是边表 存储的额是顶点的序号和指向下一个边的指针 * * * 刚开始吧定点表初始化指针指向null 然后边表插入原创 2016-02-29 14:19:13 · 526 阅读 · 0 评论 -
字符串的排列组合
问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题小;(3)子问题可通过再次递归调用求解;(4)子问题的解应能组合成整个问题的解。转载 2015-08-17 21:10:38 · 398 阅读 · 0 评论 -
算法の快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想—-分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速转载 2015-07-19 11:05:51 · 438 阅读 · 0 评论 -
算法の归并排序
算法复杂度 O(NlogN) 归并排序建立在归并基础上的操作,不断合并两个已排序的表,输出结果放在第三个临时数组中,完成后,再拷贝回来。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 //将两个有序数组a[] b[],合并到c[]中原创 2015-07-17 16:45:18 · 363 阅读 · 0 评论 -
算法の堆排序
堆数据结构一个堆数据结构由一个数组(类型可以任意),一个代表最大值的整数和当前堆的大小组成。 堆排序时间复杂度 O(N*logN) 同快速排序、归并排序一样的时间复杂度。 步骤首先以线性时间建立一个堆。然后通过将堆中的最后一个元素与第一个元素交换,缩减堆的大小进行下虑,来执行N-1次deleteMax操作。 二叉堆 二叉堆是一个完全二叉树或近似一个完全二叉树。满足两个特性:父节点的键值总原创 2015-07-16 16:44:30 · 636 阅读 · 0 评论 -
求最小生成元
求最小生成元; 如果x加上x的各个数字之和得到y就说想是y的生成元;思路::枚举范围内所有整数m则m与m的各位数字之和的一个生成元为m/*********** 求最小生成元; 如果x加上x的各个数字之和得到y就说想是y的生成元; ***********/#include#include#include#define maxn 10005int an原创 2014-12-10 20:59:05 · 1923 阅读 · 2 评论 -
素数判定方法 转自:http://dongxicheng.org/structure/prime/
1. 素数判定问题素数判定问题是一个非常常见的问题,本文介绍了常用的几种判定方法。2. 原始算法素数的定义是,除了能被1和它本身整除而不能被其他任何数整除的数。根据素数定义 只需要用2到n-1去除n,如果都除不尽,则n是素数,否则,只要其中有一个数能整除则n不是素数。1234567转载 2014-12-27 10:29:27 · 433 阅读 · 0 评论 -
猜数字游戏
给定答案序列和用户猜测序列统计有多少数字正确(A )有多少数字在两个序列中都出现过但是位置不对/************给定答案序列和用户猜测序列统计有多少数字正确(A )有多少数字在两个序列中都出现过但是位置不对(B-A)**************/#include#define maxn 1010int main(){ int n; int a[maxn原创 2014-12-10 20:05:40 · 421 阅读 · 0 评论 -
蛇形矩阵
题目描述题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211接口说明原型void GetResult(int Num, char * pResult);输入参数:原创 2016-08-13 10:28:35 · 553 阅读 · 0 评论