Java刷题
cainiao_zhangxl
好好学习编程。
展开
-
异或
题目:现在输入两个数n位二进制数,输出他们的亦或结果的十进制答案。输入三行:第一行n(1 第二行:a(n位) 第三行:b(n位)输出:异或结果的十进制数。 思路:首先需要从控制台输入要异或对象的位数n,然后输入异或的连个对象,接着比较两个对象每一位的字符,如果相同则为0如果不同则为1;最后把结果存到st原创 2017-04-07 21:37:44 · 3452 阅读 · 0 评论 -
最大连续子串
import java.util.Scanner;public class lianxuzichuan {public static void main(String[] args) {Scanner in=new Scanner(System.in);String[] str=null;while(in.hasNext()){str=in.nextLine原创 2017-08-27 09:36:27 · 227 阅读 · 0 评论 -
第K大的数
public class diK { public ListNode FindKthToTail(ListNode head,int k) { ListNode prenode=null; prenode=head; ListNode endnode=null; endnode=head; if(h原创 2017-08-27 09:38:07 · 196 阅读 · 0 评论 -
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育
import java.util.*;//这种方法太暴力了public class Solution { public boolean isContinuous(int [] numbers) { int len=numbers.length; if(len!=5) return false; Arrays.sort(numbers); int m=0; for(int k=0;k<len;k++原创 2017-08-27 10:30:18 · 1643 阅读 · 0 评论 -
圆圈中最后剩下的一个数
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下原创 2017-08-27 14:21:07 · 260 阅读 · 0 评论 -
题目描述 给定一个字符串,找出该字符串的最长回文子串。回文字符串指的就是从左右两边看都一样的字符串,如aba,cddc都是回文字符串。字符串abbacdc存在的回文子串有abba和cdc,因此它的最长
题目描述给定一个字符串,找出该字符串的最长回文子串。回文字符串指的就是从左右两边看都一样的字符串,如aba,cddc都是回文字符串。字符串abbacdc存在的回文子串有abba和cdc,因此它的最长回文子串为abba。中心法求最长回文子串还有一个更简单的方法可以使用O(N^2)时间、不需要额外的空间求最长回文子串。我们知道回文字符串是以字符串中心对称的,如abba以及aba等。转载 2017-08-27 15:08:59 · 1329 阅读 · 0 评论 -
最大回文子串
package chengxu;public class wodezuidahuiwen {public static void main(String[] args) {String s="babcbabcbaccba";String result=findmaxhuiwen(s);System.out.println(result);}原创 2017-08-27 15:54:01 · 214 阅读 · 0 评论 -
数组中重复的数
public class shuzuzhongcongfude {public static void main(String[] args) {int[] array={2,3,1,0,2,5,3};Map map=new HashMap();for(int i=0;iif(!map.containsKey(array[i])){map.put(array[i原创 2017-08-28 09:30:47 · 271 阅读 · 0 评论 -
将字符串转换成数组
public class zifuchuanzhuanshuzu {public static void main(String[] args) {Scanner in=new Scanner(System.in); String s=in.next(); char[] ch=s.toCharArray(); int fuhao原创 2017-08-28 09:34:36 · 1113 阅读 · 0 评论 -
题目:扑克牌的顺子 从扑克牌中随机抽出5张牌,判断是不是一个顺子,即这五张牌是不是连续的。2——10为数字本身,A为1,J为11,Q为12,K为13,而大小王为任意数字。
题目:扑克牌的顺子 从扑克牌中随机抽出5张牌,判断是不是一个顺子,即这五张牌是不是连续的。2——10为数字本身,A为1,J为11,Q为12,K为13,而大小王为任意数字。算法分析:我们需要把扑克牌的背景抽象成计算机语言。不难想象,我们可以把五张牌看成由五个数字组成的数组。大小王是特殊的数字,我们不妨把他们定义为0,这样就能和其他牌区分开来了。转载 2017-08-15 10:53:02 · 6364 阅读 · 0 评论 -
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) {原创 2017-07-24 20:58:12 · 247 阅读 · 0 评论 -
栈的弹出序列是否正确
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的代码:import java.util.ArrayList;import java原创 2017-04-14 17:18:59 · 345 阅读 · 0 评论 -
二叉树的镜像
public class Solution { public void Mirror(TreeNode root) { if(root==null) return; if(root!=null) { TreeNode temp; temp=null;原创 2017-04-14 17:20:46 · 192 阅读 · 0 评论 -
Java实现二叉树的先序、中序、后序、层级遍历
// 递归先序遍历 public static void PreOrderTraverse(BitNode root) { if (root != null) { visitTNode(root); PreOrderTraverse(root.lchild); PreOrderTraverse转载 2017-03-17 09:17:09 · 358 阅读 · 0 评论 -
输入n个整数,找出其中最小的K个数。——冒泡排序实现方法
import java.util.ArrayList;public class Solution { /* */ public ArrayList GetLeastNumbers_Solution(int [] input, int k) { ArrayList arr=new ArrayList(); if(inp原创 2017-04-20 20:54:43 · 1419 阅读 · 0 评论 -
请实现一个函数,将一个字符串中的空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
public class Solution { public String replaceSpace(StringBuffer str) { String s=str.toString(); StringBuffer sb=new StringBuffer(); for(int i=0;i { if(s原创 2017-07-22 21:06:56 · 208 阅读 · 0 评论 -
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39
public class Solution { public int Fibonacci(int n) { if(n return -1; int a=1,b=1,c=0; if(n==1||n==2) { return 1; }else原创 2017-07-24 20:45:02 · 3664 阅读 · 1 评论 -
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int [] array) { int len=array.length; int j=0; for(int i=0;i {原创 2017-07-24 20:48:07 · 463 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { stack1.push(node)原创 2017-07-24 20:51:10 · 411 阅读 · 0 评论 -
题目:输入N个整数,找出其中最小的k个整数。例如输入 4,5,1,6,2,7,3,8,输入k=4,则输出最小的四个数是1,2,3,4 算法分析: 算法1.O(n)的算法,修改输入的数组 可以基于get
题目:输入N个整数,找出其中最小的k个整数。例如输入 4,5,1,6,2,7,3,8,输入k=4,则输出最小的四个数是1,2,3,4算法分析:算法1.O(n)的算法,修改输入的数组可以基于getMiddle函数来解决此问题。如果基于数组的第k个数字来调整,使得第k个数字小的所有数字都位于数组的左边,比第k个数字大的所有数字都位于数组的右边。这样调整后,位于数组左边的k个转载 2017-08-31 10:10:42 · 2589 阅读 · 0 评论