自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 删除链表中的重复的结点两种解法

public static deleteDups(ListNode n){Hashtable table=new Hashtable();ListNode previous=null;while(n!=null){if(table.contains(n.data)){previous.next=n.next;}else{table.put(n.data, true)

2017-03-28 20:01:59 151

原创 判断一个字符串是否是另一个字符串旋转后的结果,假设有个函数Substring判断一个字符是否为另一个字符的子字符串并且这个函数只能用一次

boolean isRotation(String s1,String s2){if(s1.length()==s2.length()&&len>0){String s1s1=s1+s1;return isSubstring(s1,s2);}return false;}//判断一个字符串是否是另一个字符串旋转后的结果

2017-03-28 19:29:02 184

原创 若m*n矩阵中某个元素为零,则将元素所在的行与列清零

public void setzeros(int[][] martix){boolean[] row=new boolean [martix.length];boolean[] column=new boolean[martix[0].length];for(int i=0;ifor(int j=0;jif(martix[i][j]==0){row[i]=true;co

2017-03-28 19:15:57 706

原创 将字符串中的空格替换为“%20”

public void replaceSpaces(char[] str,int length){int spacecount=0,newlength,i;for(i=0;iif(str[i]=' ')spacecount++;}newlength=length+spacecount*2;//替换之后的长度str[newlength]='\0';for(int j=

2017-03-26 11:40:57 249

原创 判断字符串是否互为变位词

public String sort(String s){char content[]=s.toCharArray();java.util.Arrays.sort(content);return new String(content);}public boolean permutation(String s,String t){if(s.length()!=t.length

2017-03-26 11:18:15 486

原创 给定两个排序的数组,其中A有足够空间容纳B,实现一个方法将B容纳进A并排序

public static void merge(int a[],int b[],int lastA,int lastB){int indexA=lastA-1;//a中最后一个元素int indexB=lastB-1;//b中最后一个元素int indexMerge=lastB+lastA-1;//合并后的数组中最后一个元素if(indexA>indexB){a[indexM

2017-03-16 15:44:44 610

原创 求一个整数数组中的所有子数组和的最大值

bool g_InvalidInput=false;//判断输入是否有效int findGreatestSumOfSubArray(int *pData,int length){if((pData==null)||(lengthg_InvalidInput=true;return 0;}g_InvalidInput=false;int CurSum=0;int Gr

2017-03-13 12:22:23 425

原创 输入n个整数,找出其中最小的K个数

先进行快速排序算法,使得比第k个数小的整数都排到第k个数之前,然后第k个数的左边就是数组中最小的K个数;算法实现如下:void GetLeastNumbers(int* input,int n,int* output,int k){if(input==null||output==null||nn||kreturn;}int start=0;int end=n-1;i

2017-03-13 12:17:06 1523

原创 检查数组中超过一半的数的第二种解法

到第一个数时,让次数为1,每次遇到相同的数,次数加一,遇到不同的次数减去1;当次数为0时,让次数为1;那么数组中超过一半的肯定为最后一次次数为1时对应的那个数字,代码实现如下:int MoreThanHalfNum1(int* numbers,int length){if(CheckInvalidInput(numbers,length)){return 0;}int ti

2017-03-12 11:26:34 158

原创 检查数组中超过一半的数字

bool g_bInputInvalid=false;bool CheckInvalidArray(int* numbers,int length){//检查是否有效输入g_bInputInvalid=false;if(numbers==null&&lengthg_bInputInvalid=true;return g_bInputInvalid;}bool Check

2017-03-12 11:03:09 137

原创 打印字符串中所有字符的排列

void Permutation(char* pStr){if(Pstr==null){return;}Permutation(pStr,pStr);}void Permutation(char* pStr,char* pBegin){if(*pBegin=='\0'){printf("%s\n",pStr);}else{for(char* pch=pBeg

2017-03-11 19:21:00 252

原创 判断某数组是不是二叉搜索树的后序遍历序列

判断某数组是不是二叉搜索树的后序遍历序列:所谓二叉搜索树,是指根节点左子树结点都小于根结点,右子树结点都大于根结点;算法实现如下:bool VerifySquenceOfBST(int sequence[],int length){if(sequence[]==null || lengthreturn false;}int root=sequence[length-

2017-03-09 15:31:47 170

原创 顺时针打印矩阵

将矩阵顺时针打印出来,其中的打印一圈的功能实现:void PrintMatrixInCircle(int** numbers,int columns,int rows,int start){int endX=columns-start-1;int endY=rows-start-1;for(int i=start;iint number=numbers[start][i];

2017-03-09 14:55:10 167

原创 求二叉树的镜像二叉树

镜像二叉树与原二叉树的左右子节点相反,当交换子结点后,需要对子结点的子结点进行同样的交换操作;算法实现如下:void MirrorRecursively(BinaryTreeNode *pNode){if((pNode==null)||(pNode->m_pLeft==null&&pNode->m_pRight==null)){return ;}BinaryTree

2017-03-09 14:51:12 223

原创 二叉树的子结构判断

输入两个二叉树1和2,查看树2是否是树1的子结构;首先遍历二叉树,寻找是否有和树2头结点相同的结点;然后当树1有和树2相同的结点时,查看子结点是否相同;可用递归实现;算法实现如下:bool HasSubtree(BinaryTreeNode* pRoot1,BinaryTreeNode* pRoot2){bool result=false;if(pRoot1!=null||pR

2017-03-06 12:52:47 331

原创 合并两个排序的链表

分别用两个指针指向链表的头结点,比较这两个结点,哪个值小,就把那个值放进合并好的链表中,继续进行同样的操作;ListNode* Merge(ListNode* pHead1,ListNode* pHead2){if(pHead1==NULL){return pHead2;}else if(pHead2=NULL){return pHead1;}ListNode* pMe

2017-03-06 12:12:03 174

原创 求一个数的二进制中1的个数

第一种解法:int NumberOf1(int n){int count=0;unsigned int flag=1;while(flag){if(n & flag)  和1与运算计算结果为1表示二进制为1count++;flag=flag}return count;}第二种解法:int qNumberOf1(int n){int count=0;

2017-03-01 12:42:40 160

原创 求斐波那契数列的非递归解法;

求 0,1,1,2.........的斐波那契数列算法如下:long long Fibonacci(unsigned n){int result[2]={0,1};if(nreturn result[n];long long fibNMinusOne=1;long long fibNMinusTwo=0;long long fibN=0;for(int i=2;

2017-03-01 11:28:26 214

原创 旋转数组的最小值

int Min(int* numbers,int length){if(numbers==NULL||lengththrow new std::exception("Invalid parameters");int index1=0;int index2=length-1;int indexMid=index1;while(numbers[index1]>=numbers[

2017-03-01 10:21:54 143

空空如也

空空如也

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

TA关注的人

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