自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小滋

小滋 点滴

  • 博客(13)
  • 收藏
  • 关注

原创 数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007  IDEA 1.首先是暴利算法,即双重遍历数组,累加前数比后数大的个数 2.用归并算法 并排序的主要思想是将整个序列a[ ]分成两部分,分别递归将这两部分排好序之后,再和并为一个有序的序列

2017-01-10 10:10:23 213

原创 第一个只出现一次的字符

在一个字符串(1 IDEA 用LinkedHashMap保持输入的顺序,从而能找到第一个value=1的key CODE import java.util.LinkedHashMap; public class Solution { public int FirstNotRepeatingChar(String str) { if(str.length()==0){

2017-01-09 14:45:19 184

原创 丑书 Ugly number

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 IDEA 丑数是其质因子为2,3,5 (除1和其本身外)的数 后面的一个丑数肯定是由前一个丑数*2/3/5得来的,因此采用动态规划来解答。 CODE public class Solution { pu

2017-01-09 11:12:15 189

原创 把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 IDEA 重载排序算法sort()用到的比较算法comp():先将正数数组转为string类型数组,然后对string类型数组中的元素按照相关规则排序,最后将排序好的string数组元素连接,生成一个字符串作为最终结果

2017-01-08 09:45:49 294

原创 整数中1出现的次数(从1到n整数中1出现的次数)

求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 IDEA 方法1:将数字转换成字符数组,遍历数组,统计‘1’的个数; 方法2:(转自https://www.n

2017-01-07 10:06:14 869

原创 连续子数组的最大和

HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)

2017-01-06 09:30:52 236

原创 最小的K个数

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 Idea 题目只要求给出最小的几个数,就没有必要将input中的所有元素全排序 最经典的是堆排序 但是用冒泡排序将最小的k数冒泡到随后也是可以通过的 Code import java.util.ArrayList; public class Solution {

2017-01-05 10:28:36 129

原创 数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 IDEA 将数组从小到大排序,如果这个出现次数超过数组长度一半的数存在,则一定是排序后中间的数,否则不存在 CODE import java.util.*; public clas

2017-01-03 11:39:07 172

原创 字符串的排列

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。  Idea 看到别人用的好的方法放到这里,共勉 Code 1.回溯法 import java.util.*; public class Solution { public ArrayList Permu

2017-01-03 10:59:36 162

原创 二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 Idea 根据二叉搜索树的性质,左 其中序遍历正好是一个从小到大的排序。 本题借助二叉搜索树的中序遍历的递归思路: 1.将左子树转换为左序列 2.保存左序列到头结点,并遍历到尾结点,和当前根结点连接 3.将右子树转换为左序列 4.保存右序列到头结点,和当前根结点连

2017-01-03 10:05:04 204

原创 复杂链表的复制

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) Idea 分三步走 1.赋值链表节点,只保存next的联系 如: A->A'->B->B'->C->C' 2.估值random联系,也是从原节点巡查,如A  ->(random

2017-01-02 11:13:53 223

原创 二叉树中和为某一值的路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 Idea 深度遍历二叉树,采用递归的思想 res存储结果,所有符合条件的路径;list存储当前检测的路径。 检测到一个叶子节点,此时target=0,则该路径满足需求,则加入res; 递归检测左子树和右子树,并退回到上以节点list.remove(

2017-01-02 10:26:50 175

原创 二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 Idea 采用递归思想。根据二叉搜索树的性质,左 Code public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(seque

2017-01-02 09:53:15 181

空空如也

空空如也

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

TA关注的人

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