![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
lz_94
这个作者很懒,什么都没留下…
展开
-
翻转子串(思路:假定两个字符串已经是翻转)
题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:"Hello world","wor原创 2016-03-01 21:15:50 · 456 阅读 · 0 评论 -
设计一个算法,求输入正整数A和正整数B的最小公倍数。
设计一个算法,求输入正整数A和正整数B的最小公倍数。package com.test.xml;import java.util.Scanner;public class LeastCommonNumber { public static void main(String[] args) { Scanner in = new Scanner(System.in); while原创 2016-03-13 21:22:44 · 1350 阅读 · 0 评论 -
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
问题:给定一个字符串,问是否能通过添加一个字母将其变为回文串。思路: 在做测试时有三种情况:(1)aba型,本来就是回文串(2)abac型,在串的左边或右边添加另一侧的字符,变成回文串(3)abceba型,在串的中间添加字符,形成回文串。然而普通做法,前两种很好判断和处理,只有第三种比较麻烦。那么解决的方法就是动态规划,利用源字符串和翻转后的字符串,求最长公共子序列。长度-公共子序列的长度=添原创 2016-03-10 21:58:48 · 2950 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。思路:有两个栈,栈1和栈2.当入栈的时候,我们将它全放进栈1中,当需要出栈的时候,我们将栈1出栈到栈2中,然后再将栈2依次出栈。所以入栈的时候,思路很简单,注意到要将int类型转为Integer类型,我们使用了new Integer(int);当需要出栈的时候,我们用API提供的方法while(sta原创 2016-03-09 20:20:19 · 2082 阅读 · 0 评论 -
一道二进制的考查题
两个int32整数m和n的二进制表达,有多少个位(bit)不同么? public class Solution { /** * 获得两个整形二进制表达位数不同的数量 * * @param m 整数m * @param n 整数n * @return 整型 */ public int countBitDiff(int原创 2016-03-08 21:12:04 · 350 阅读 · 0 评论 -
删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5.思路:定义指针pre、p初始化都指向pHead,然后用p遍历链表,如果p.val和p.next.val值相同,则p往后移,如果不同,则比较pre和p(注意,此处不是比值,而是比较节点是否就是指向同一个),转载 2016-03-05 20:17:54 · 490 阅读 · 0 评论 -
数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。public class Solution { // Parameters: // numbe原创 2016-03-05 09:24:09 · 217 阅读 · 0 评论 -
不用加减乘除做加法,求两个整数之和
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。方法一:public class Solution { public int Add(int num1,int num2) { int n1=((num1&num2)<<1); //需要进位的部分 int n2=(num1^num2); //不需要进位的部原创 2016-03-05 00:20:42 · 378 阅读 · 0 评论 -
二维数组中的值查找最优解算法
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:首先我们选择从左下角或右上角开始搜寻,(为什么不从左上角开始搜寻,左上角向右和向下都是递增,那么对于一个点,对于向右和向下会产生一个岔路;如果我们选择从左下脚开始搜寻的话,如果大于就向右,如果小于就向下)。原创 2016-03-03 20:50:50 · 2308 阅读 · 0 评论 -
算法实现:字符串的所有排列情况
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母import java.util.*; public class Solution { private cha转载 2016-03-28 22:05:20 · 381 阅读 · 0 评论