<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[princecharming666的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/princecharming666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; princecharming666]]></copyright><item><title><![CDATA[【牛客练习赛59】B：牛能和小镇]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913501</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913501</guid><author>princecharming666</author><pubDate>Sat, 14 Mar 2020 16:04:00 +0800</pubDate><description><![CDATA[题目描述
在牛国有2个小镇编号1，2，3...n-1,n。用二维平面来表示每个小镇的位置，第个小镇的位置为（xi,yi)。牛能做为牛国的国王，决定给小镇之间建设一些道路，以便于任意小镇之间都能相互到达，在第个小镇和第个小镇之间建设一条道路的花费是:|Xi*Xi*Yi-Xj*Xj*Yj+Yi*Yi*(Yi-2*Xi)-Yj*Yj*(Yj-2*Xj)|但是牛能小气的很，他想最小化建设的费用。...]]></description><category></category></item><item><title><![CDATA[【牛客练习赛59】A：小乔和小灰灰]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913499</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913499</guid><author>princecharming666</author><pubDate>Sat, 14 Mar 2020 15:46:00 +0800</pubDate><description><![CDATA[比赛地址：https://ac.nowcoder.com/acm/contest/4743/A
题目描述
小乔和小灰灰是好朋友，现在如果一个字符串中同时出现子序列“XiaoQiao”和“XiaoHuiHui”，那么小乔和小灰灰都会感到开心。如"abc"的子序列有:“a"、“b”、“c”、“ab”、“ac”、“bc”、“abc”。
输入描述:
输入包含一行一个字符串S字符串中仅包含大写字母...]]></description><category></category></item><item><title><![CDATA[Java输入 StreamTokenizer]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913500</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913500</guid><author>princecharming666</author><pubDate>Sat, 14 Mar 2020 00:20:00 +0800</pubDate><description><![CDATA[StreamTokenizer用来分隔字符串。
可以获取输入流并将其分析为Token(标记)。StreamTokenizer的nextToken方法将读取下一个标记。
功能 : 1、 将输入流分解成一组标记，允许一次读一个。分解过程由一张表和一些可以设置成各种状态的标志来控制。  2、读取的每个字节被认为是“\u0000”-“\u00FF”之间的字符。空格(“\u0000”-“\u002...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】10、 矩形覆盖]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913498</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913498</guid><author>princecharming666</author><pubDate>Fri, 13 Mar 2020 14:46:00 +0800</pubDate><description><![CDATA[题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形，总共有多少种方法？
题解一：递归

 1 //类似于斐波那契，递归
 2     public static int RectCover(int target) {
 3         if(target&lt;=0){
 4             return 0;
...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】64、数据流中的中位数]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913497</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913497</guid><author>princecharming666</author><pubDate>Fri, 13 Mar 2020 14:06:00 +0800</pubDate><description><![CDATA[题目描述
如何得到一个数据流中的中位数？如果从数据流中读出奇数个数值，那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值，那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流，使用GetMedian()方法获取当前读取数据的中位数。
题解一：ArrayList

 1 private static ArrayList&lt;In...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】55、字符流中第一个不重复的字符]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913496</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913496</guid><author>princecharming666</author><pubDate>Thu, 12 Mar 2020 21:19:00 +0800</pubDate><description><![CDATA[题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如，当从字符流中只读出前两个字符"go"时，第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时，第一个只出现一次的字符是"l"。
输出描述：
如果当前字符流没有存在出现一次的字符，返回#字符。
题解一：HashMap

 1 private static HashMap&lt;Character...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】54、表示数值的字符串]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913495</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913495</guid><author>princecharming666</author><pubDate>Thu, 12 Mar 2020 19:44:00 +0800</pubDate><description><![CDATA[题目描述
请实现一个函数用来判断字符串是否表示数值（包括整数和小数）。例如，字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
题解一：库函数

 1  /**
 2      *parseDouble()与valueOf()均可
 3      */
 4...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】12、数值的整数次方]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913493</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913493</guid><author>princecharming666</author><pubDate>Wed, 11 Mar 2020 18:13:00 +0800</pubDate><description><![CDATA[题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
题解一：递推

 1 public static double Power(double base, int exponent) {
 2         boolean flag = false;
 3         if...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】11、二进制中1的个数]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913492</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913492</guid><author>princecharming666</author><pubDate>Wed, 11 Mar 2020 13:50:00 +0800</pubDate><description><![CDATA[题目描述
输入一个整数，输出该数二进制表示中1的个数。其中负数用补码表示。
题解一：按位与

 1  public static int NumberOf1(int n) {
 2        int count=0;
 3        int flag=1;
 4        //和n的每位进行位与，来判断1的个数
 5        while (flag!=0){
 6   ...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】34、第一个只出现一次的字符]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913436</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913436</guid><author>princecharming666</author><pubDate>Wed, 11 Mar 2020 00:02:00 +0800</pubDate><description><![CDATA[题目描述
在一个字符串(0&lt;=字符串长度&lt;=10000，全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1（需要区分大小写）
题解一：HashMap

 1  public static int FirstNotRepeatingChar(String str) {
 2         Map&lt;Character, Integer&g...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】19:顺时针打印矩阵]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913491</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913491</guid><author>princecharming666</author><pubDate>Tue, 10 Mar 2020 18:53:00 +0800</pubDate><description><![CDATA[题目描述
输入一个矩阵，按照从外向里以顺时针的顺序依次打印出每一个数字，例如，如果输入如下4 X 4矩阵： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
题解一：循环转向

 1 public static ArrayList&lt;Integer&gt; pr...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】31、整数中1出现的次数（从1到n整数中1出现的次数）]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913490</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913490</guid><author>princecharming666</author><pubDate>Mon, 09 Mar 2020 21:44:00 +0800</pubDate><description><![CDATA[题目描述
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数？为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数（从1 到 n 中1出现的次数）。
题解一：归纳法

 1 /**
 2  *个位上1出现的个数为：...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】35:数组中的逆序对]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913494</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913494</guid><author>princecharming666</author><pubDate>Mon, 09 Mar 2020 16:52:00 +0800</pubDate><description><![CDATA[题目描述
在数组中的两个数字，如果前面一个数字大于后面的数字，则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
输入描述：
题目保证输入的数组中没有的相同的数字数据范围： 对于%50的数据,size&lt;=10^4 对于%75的数据,size&lt;=10^5 对于%100的数据,si...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】32、把数组排成最小的数]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913489</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913489</guid><author>princecharming666</author><pubDate>Sun, 08 Mar 2020 21:49:00 +0800</pubDate><description><![CDATA[题目描述
输入一个正整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。例如输入数组{3，32，321}，则打印出这三个数字能排成的最小数字为321323。
题解一：DFS

 1 //存放一次循环中遍历过的数字
 2     private static int[] nums;
 3     //标记是否遍历过，遍历过为1，否则为0
 4     priv...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】37:数字在排序数组中出现的次数]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913488</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913488</guid><author>princecharming666</author><pubDate>Sun, 08 Mar 2020 16:38:00 +0800</pubDate><description><![CDATA[题目描述
统计一个数字在排序数组中出现的次数。
题解一：循环

 1 public static int GetNumberOfK(int [] array , int k) {
 2         if(array.length==0){
 3             return 0;
 4         }
 5         int count=0;
 6         ...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】29:最小的K个数]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913487</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913487</guid><author>princecharming666</author><pubDate>Sat, 07 Mar 2020 22:36:00 +0800</pubDate><description><![CDATA[题目描述
输入n个整数，找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字，则最小的4个数字是1,2,3,4。
题解一：快排

 1 public static ArrayList&lt;Integer&gt; GetLeastNumbers_Solution(int [] input, int k) {
 2         ArrayList&lt;Integer...]]></description><category></category></item><item><title><![CDATA[堆排序]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913486</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913486</guid><author>princecharming666</author><pubDate>Sat, 07 Mar 2020 18:04:00 +0800</pubDate><description><![CDATA[对简单选择排序的优化
1.将序列构建成大顶堆。
2.将根节点与最后一个节点交换，然后断开最后一个节点。
3.重复第一、二步，直到所有节点断开。
实现方式一：

 1  public  static void heapSort(int[] a){
 2         System.out.println("开始排序");
 3         int arrayLength=a.leng...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】30、连续子数组的最大和]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913485</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913485</guid><author>princecharming666</author><pubDate>Fri, 06 Mar 2020 22:40:00 +0800</pubDate><description><![CDATA[题目描述
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢？例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组，返回它的最大...]]></description><category></category></item><item><title><![CDATA[【剑指Offer】28、数组中出现次数超过一半的数字]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913438</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913438</guid><author>princecharming666</author><pubDate>Fri, 06 Mar 2020 18:05:00 +0800</pubDate><description><![CDATA[题目描述
数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
题解一：HashMap

 1 public static int MoreThanHalfNum_Solution(int [] array) {
 2       ...]]></description><category></category></item><item><title><![CDATA[遍历HashMap的三种方式]]></title><link>https://blog.youkuaiyun.com/princecharming666/article/details/104913437</link><guid>https://blog.youkuaiyun.com/princecharming666/article/details/104913437</guid><author>princecharming666</author><pubDate>Fri, 06 Mar 2020 17:50:00 +0800</pubDate><description><![CDATA[方式一：entrySet()
遍历HashMap的entrySet键值对集合
1.通过HashMap.entrySet()得到键值对集合；
2.通过迭代器Iterator遍历键值对集合得到key值和value值；

 1 @Test
 2     public void testHashMap01(){
 3        // 创建一个key和value均为String的Map集合
 ...]]></description><category></category></item></channel></rss>