摘要: import java.util.*; public class Main{ public static void main(String[] args){ String S = "yasherhs"; String[] words = {"say","she","shr","he","her","hs"}; System.out.pri... 阅读全文
posted @ 2018-09-19 23:13 xinyilovestudy 阅读(115) 评论(0) 推荐(0) 编辑
摘要: import java.util.*; public class Main{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); System.out.println(fun(s));... 阅读全文
posted @ 2018-08-30 21:32 xinyilovestudy 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1.Dijkstra 2.弗洛伊德 阅读全文
posted @ 2018-06-28 20:32 xinyilovestudy 阅读(162) 评论(0) 推荐(0) 编辑
摘要: import java.util.*; public class Main{ public static void main(String[] args) { int[] nums={1,-1,2,-3,4,-5,6,-7}; int len=nums.length; int[] maxNum=new int[len+1]; ... 阅读全文
posted @ 2018-04-22 11:59 xinyilovestudy 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 解法1:利用分治法,先将某个数排在正确得位置,即比他大的数在左边,比他小的数在右边。然后比较他及他后面的数与k的大小。 解法2:使用堆维持K个元素,挨个遍历N个元素。 3.使用间隔分治法,将第K大的数找出来,再一次记录比他大的数 阅读全文
posted @ 2018-04-13 13:46 xinyilovestudy 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 输出1-N中包含1的数目: 阅读全文
posted @ 2018-04-13 11:38 xinyilovestudy 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1.插入法 2.动态规划(可继续优化空间复杂度) 阅读全文
posted @ 2018-03-25 21:56 xinyilovestudy 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1.O(N*N*M*M)通过遍历每个矩形,来获取最大矩形和。(用一个二维数组保存从顶点到目标点之间的矩形和) 2.O(N*N*M)将首尾行固定住,然后像一位子数组和那样求二维最大子数组和 阅读全文
posted @ 2018-03-22 20:59 xinyilovestudy 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 还有两点没有理解: 1.当数字很大时会超过INT的表示范围,书中使用记录大整数中1的位置 2.如果某个循环中没有新的余数更新,那么就不存在这样的数M 解法2:跟书本一致 阅读全文
posted @ 2018-03-19 20:47 xinyilovestudy 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1.快速排序 2.堆排序 3.求第K大的数(利用快速排序每次缩小范围减小k) 4.求第K大的数(利用堆排序维护K的小顶堆) 阅读全文
posted @ 2018-03-18 19:43 xinyilovestudy 阅读(184) 评论(0) 推荐(0) 编辑