- 博客(40)
- 资源 (2)
- 收藏
- 关注
原创 常见排序的java代码
import java.util.ArrayList;public class AllSorts { public static void main(String[] args) { int[] a = {49,38,65,97,49,76}; print(a); //insertSort(a); //shellSort(a); //selectSort(a);
2015-08-20 21:40:15 504
转载 常见排序总结
8种排序之间的关系: 1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 package com.njue; public cl
2015-08-20 21:32:13 506
转载 c++中32位64位操作系统基本数据类型字节大小
int型字长问题:① C/C++规定int字长和机器字长相同;② 操作系统字长和机器字长未必一致;③ 编译器根据操作系统字长来定义int字长; 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:"比如你在64位机器
2015-08-20 15:57:52 1673
转载 任意2n个整数,从其中选出n个整数,使得选出的n个整数和同剩下的n个整数之和的差最小。
编程之美上的题,《数组分割》:假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:S(k, 1) = {A[i] | 1S(k, k) = {A[1]+A[2]+…+A[k]}S(k, i) = S(k-1, i) U {A[k] + x | x属
2015-08-19 15:14:27 2542
转载 面试大总结之二:Java搞定面试中的二叉树题目
这是本系列的第二篇,与前一篇 面试大总结之一:Java搞定面试中的链表题目 相比,二叉树的题目可以变化的就更多了。本文还是参考整合重写了《轻松搞定面试中的二叉树题目》和《算法大全(3) 二叉树》两篇大作。本文一个小亮点就是几乎每一道题都用了递归和迭代两种方法写过一遍,因为面试时往往可能会被要求写不擅长的那一种。这一千多行的记录也是我在面试摸索过程中的一个小笔记,备份与此。请大神们轻拍指正。今后
2015-08-19 11:51:20 712
转载 面试大总结之一:Java搞定面试中的链表题目
链表是面试中常出现的一类题目,本文用Java实现了面试中常见的链表相关题目。本文主要参考整合重写了《轻松搞定面试中的链表题目》和 《算法大全(1)单链表》两篇大作。两篇大神的实现分别是C和C#,因为我更喜欢用Java面试,所以用Java重写了所有实现,并附上自己的一些思考注释。算法大全(1)单链表 尚未有一些问题尚未整合进来,很快我会更新本文。接下来还会出关于二叉树的大总结和栈和队列的大总结。因为
2015-08-19 11:49:58 397
原创 约瑟夫环
import java.util.*;public class YueSeFu { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.nextLine(); String[] ss = str.split(","); int n = Int
2015-08-17 23:43:35 327
原创 StringMatch
import java.util.Arrays;import java.util.Scanner;public class StringMatch { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str1 = s.next(); String str2
2015-08-17 23:42:57 495
原创 重建二叉树
package huaWei03;import java.util.*;public class Main { static List list = null; public static void main(String[] args) { Main build=new Main(); Scanner in = new Scanner(System.in); while
2015-08-17 23:40:34 418
原创 Poker大小
import java.util.Scanner;public class Poker { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String inputStr=sc.nextLine(); String[] str=inputStr.split("-");
2015-08-17 23:39:05 678
原创 NoRepeatNoSe
import java.util.*;/*3,4,5,11,18,33 5 11 18连续的数只保留两端的,没有重复的数**/public class NoRepeatNoSe { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.next
2015-08-17 23:36:13 287
原创 NoRepeatInteger
import java.util.*;public class NoRepeatInteger { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.nextLine(); str= str.trim(); String result =
2015-08-17 23:35:33 412
原创 最大漂亮度
import java.util.*;public class NamePrettyDegree { public static void main(String[] args) { ArrayList listRes = new ArrayList(); Scanner scan = new Scanner(System.in); int num = scan.nextInt
2015-08-17 23:35:01 388
转载 最高分数记录
#include#include#include#include#include#define MaxNum 30010using namespace std;int num[MaxNum];int max(int a, int b) { return a > b ? a : b; }struct SegmentreeNodeTree{ int left; int righ
2015-08-17 23:32:59 355
原创 合唱队
import java.util.Arrays;import java.util.Scanner;public class HeChang { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String num = scan.nextLine(); int n
2015-08-17 23:31:24 1107
原创 ErrorRecord
代码如下:import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Scanner;public class ErrorRecord { public static void main(String[] args) { LinkedHashMap map = new LinkedHa
2015-08-17 23:30:01 564
原创 DNASequence
import java.util.*;public class DNASequence {public static void main(String[] args) {Scanner s = new Scanner(System.in);String str = s.nextLine();int len = s.nextInt();St
2015-08-17 23:28:24 660
原创 CountCharNum
代码如下:import java.util.*;public class CountCharNum { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); String c = scan.nextLin
2015-08-17 23:26:53 523
原创 Average
代码如下:import java.util.*;public class Average { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.nextLine(); str = str.replace('0', ' '); str =
2015-08-17 23:25:40 527
转载 JAVA中REPLACE和REPLACEALL的区别
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串); 2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一
2015-08-17 16:55:30 427
原创 he
思路:其实就是利用动态规划从左向右求一个最大长度递增的子序列,再从右向左求一个最大长度递增的子序列。这样合起来就是先增后减的了。代码如下:import java.util.Arrays;import java.util.Scanner;public class HeChang { public static void main(String[] args) { Scanner sc
2015-08-14 19:02:46 382
原创 最长公共子串(连续)
题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.nextLine(
2015-08-12 17:29:42 289
原创 字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:本质就是全排列的问题,具体思路见剑指offer的P155的那个图,主要就是采用循环递归的思想。代码如下:
2015-08-08 11:30:02 348
转载 Java中字符串为什么不以\0结尾
其实这个问题没有什么好说的,Java里面一切都是对象,是对象的话,字符串肯定就有长度,即然有长度,编译器就可以确定要输出的字符个数,当然也就没有必要去浪费那1字节的空间用以标明字符串的结束了。学过C/C++的人都有一种固定的思维模式,凡是字符串都是以\0结束,其实C++中未必,不信你查查string这个泛型类,为了与C语言兼容性,它里面有一个方法c_str()就是返回以\0结束的字符串。
2015-08-08 11:17:06 4628
原创 二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:二叉搜索树变成排序的双向链表,即中序遍历,将树结构转为双向链表结构。具体见剑指offer的P152代码如下:/**public class TreeNode { int val = 0; TreeNode left = n
2015-08-07 22:33:12 350
原创 二叉树的前序,中序,后序遍历
public static void preTraverse(TreeNode root) { if (root != null) { System.out.print(root.data + " "); preTraverse(root.lchild); preTraverse(root.rchild); } } /** * 中序遍历
2015-08-07 21:59:15 397
原创 复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。思路:见剑指offer代码如下:import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;import java.util.Set;public c
2015-08-07 21:20:49 249
原创 二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:主要是根据根节点划后序遍历数组,分出左右子树,判断左右子树和根节点值的大小是否符合二叉搜索树的大小关系,并递归判断左右子树是否为二叉搜索树。依此为依据作为判断的结果,注意left=true初始化为true,因为左子树可能为空,这样不
2015-08-07 15:35:09 363
原创 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路:具体思路见剑指offer代码如下;import java.util.ArrayList;import java.ut
2015-08-07 12:45:13 241
原创 Fraction to Recurring Decimal
Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.If the fractional part is repeating, enclose the repeating part in parentheses.
2015-08-06 17:09:51 231
原创 Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at most t and the difference between i an
2015-08-06 15:42:32 222
原创 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。思路图见剑指offer的P54,讲解的很清楚,关键是划分数组属于子树的区间,然后借助递归的方法重建二叉树。(下面的代码并没有
2015-08-06 13:24:38 189
原创 从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。代码如下:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }*
2015-08-06 12:47:19 228
原创 替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。代码如下:12345678publicclass Solution { public
2015-08-06 12:33:11 166
原创 二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码如下:public class Solution { public boolean Find(int [][] array,int target) { if(array=
2015-08-06 11:12:17 281
原创 矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?本质还是斐波那契数列,只是f(0)=1(不太明白);别的和跳台阶那题一样代码如下:public class Solution { public int RectCover(int target) { int[] resu
2015-08-06 10:58:11 201
原创 变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:本质是f(n)=f(n-1)+...+f(0)+1;其中(n>=1);把数字写出来,很容易发现当n>=1时,f(n)=2^(n-1);代码如下:public class Solution { public int JumpFloorII(int target) {
2015-08-06 10:48:39 174
原创 跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。本质是斐波那契数列,但是稍有不同,因为这里的f(0)=0,f(1)=1,f(2)=2,但是斐波那契数列那里f(2)=f(1)+f(0).代码如下:public class Solution { public int JumpFloor(int target) {
2015-08-06 10:34:28 179
原创 Valid Anagram
Given two strings s and t, write a function to determine if t is an anagram of s.For example,s = "anagram", t = "nagaram", return true.s = "rat", t = "car", return false.[思路]sort 以
2015-08-05 22:39:02 185
原创 Maximal Square
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and return its area.For example, given the following matrix:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0
2015-08-05 22:17:45 211
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人