![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
Philo_zz
这个作者很懒,什么都没留下…
展开
-
翻转子串
题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:"Hello world原创 2016-09-22 19:13:57 · 161 阅读 · 0 评论 -
二进制小数
题目描述有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。测试样例:0.625返回:0.101import java.util.*;public class原创 2016-09-28 11:01:23 · 517 阅读 · 0 评论 -
二进制插入
题目描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。测试样例:1024,19,2,6返回:1100解析:二进制插入原创 2016-09-28 10:34:45 · 463 阅读 · 0 评论 -
判断一个数是否是2的n次方
转载自 http://blog.csdn.net/hfyinsdu/article/details/6860126数字n判断方法:int result = (n&(n-1)==0) ? (1) : (0);原理,如果一个数是2的n次方,那么这个数的二进制形式中只有1位为1,这样,减1之后,为1的那个位变为0,后面的位变为1,两个数相与结果为0转载 2016-09-27 10:44:07 · 319 阅读 · 0 评论 -
图的存储
图的邻接矩阵存储,使用edges存储图中的边信息,二位数组的下标对应边的两个端点。point而用于存储节点信息。public class MGraph { int edges[][] = new int[100][100]; //边 int v,e; int[] point = new int[100]; //节点 //邻接矩阵的遍历 public void原创 2016-09-26 18:18:52 · 186 阅读 · 0 评论 -
清除行列
题目描述请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。给定一个N阶方阵int[][](C++中为vector)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector),保证n小于等于300,矩阵中的元素为int范围内。测试样例:[[1,2,3],[0,1,2],[0,0,1]]返回:[[0,0,3],[0,0,0]原创 2016-09-22 15:25:20 · 193 阅读 · 0 评论 -
像素翻转
阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3返回:[[7,4,1],[8,5,2],[9,6,3]]原创 2016-09-22 14:52:13 · 241 阅读 · 0 评论 -
基本字符串压缩
利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。给定一个string iniString为待压缩的串(长度小于等于10000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。测试样例"aabcccccaaa原创 2016-09-22 10:01:49 · 535 阅读 · 0 评论 -
确定两串乱序同构
给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。import java.util.*;public class Same { public boolea原创 2016-09-22 09:40:54 · 143 阅读 · 0 评论 -
二叉树平衡检查
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。import java.util.*;/*public class TreeNode { int val = 0; TreeNode left原创 2016-09-24 09:48:23 · 180 阅读 · 0 评论 -
双栈排序
题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector<int>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。测试样例:[1,2,3,4,5]返回:[5,4,原创 2016-09-23 19:51:20 · 180 阅读 · 0 评论 -
回文链表
题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:falseimport java.util.*;/*public class ListNode { int val; L原创 2016-09-22 22:07:44 · 253 阅读 · 0 评论 -
链表分割
题目描述编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。import java.util.*;/*public class ListNode { int val; ListNode ne原创 2016-09-22 19:37:13 · 181 阅读 · 0 评论 -
算法-求二进制数中1的个数
作者:zdd出处:http://www.cnblogs.com/graphics/问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文转载 2016-09-28 15:03:06 · 381 阅读 · 0 评论