oj
Stray_Cat_Founder
这个作者很懒,什么都没留下…
展开
-
Peeking Iterator【284】
// Java Iterator interface reference:// https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.htmlclass PeekingIterator implements Iterator { Integer front = null; Integer behind原创 2015-09-25 22:30:44 · 525 阅读 · 0 评论 -
全排序java
面试中被问到数组的全排序问题,虽然以前学过,但是刚一问到也是一脸懵逼。虽然上课时学过此类问题,也没留下态度印象,因此悲剧。这里记录以下代码(5分钟左右),留以后翻看。public class Permutation { public static void main(String[] args) { int a[] = new int[]{1,2,3}; per原创 2017-06-09 20:47:02 · 263 阅读 · 0 评论 -
迷宫的路径问题
在程序设计中,关于迷宫的问题,有书中提到迷宫的最短路径问题,并给出了相关C代码,思考良久,利用宽度优先算法怎么可以得到最短路径,百思不得解,将C代码改写java代码后经测试发现,的确不能得到最短路径,充其量也只能得到其中的一条路径。现将代码献上。public class ShortestPath { private static char[][] path = new char[][]{原创 2017-06-09 20:37:27 · 585 阅读 · 0 评论 -
最长递增字串
public class Zuichangdizengzichuang { public static void main(String args[]) { Integer[] a = new Integer[]{4,6,8,10,34,65,2,43,54,76,86,54,33,23,55}; MaxIncreSubSequence<Integer> mss原创 2017-04-27 16:59:40 · 443 阅读 · 0 评论 -
排序算法
心血来潮,想实现一个支持泛型的快速排序,于是写了如下程序。发现自己算法能力有待提高,因为写这个代码加上调试,花了比较长的时间。快速排序的原理比较简单,给元素定位。public class QuickSort<T extends Comparable<? super T>> { //先前再后 public void sort(T[] t , int start, int end) {原创 2017-04-23 00:53:40 · 212 阅读 · 0 评论 -
寻找数组中的第K大的元素&找数组中重复数字
问题1:寻找数组中的第K大的元素。public class FindMaxKNum { public static void main(String args[]) { int a[] = new int[]{3,5,2,8,-1,7,1,10}; System.out.println(findKMaxNum(a, 0, a.length - 1, 6));原创 2017-04-09 18:13:25 · 674 阅读 · 0 评论 -
Add Two Numbers【2】
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode pHead = new ListNode(0); ListNode p = pHead; int val1; int val2;原创 2015-10-05 21:38:22 · 357 阅读 · 0 评论 -
Two Sum【1】
public static int[] twoSum(int[] nums, int target) { int[] twoSum = new int[2]; List list = new ArrayList(); HashMap hm = new HashMap(); int length = nums.length;原创 2015-10-05 10:08:53 · 356 阅读 · 0 评论 -
Find the Duplicate Number【287】
网上解法,学习用public int findDuplicate(int[] nums) { int n = nums.length; int slow = n; int fast = n; do{ slow = nums[slow-1]; fast = nums[nums[fast原创 2015-10-03 22:00:48 · 705 阅读 · 0 评论 -
First Bad Version【278】
【二分法】解题浅析public int firstBadVersion(int n) { int lo = 1, hi = n; int final_var = 0; while(lo <= hi){ int mid = lo + (hi - lo)/2; if(isBadVersion(mid))原创 2015-10-03 09:33:00 · 428 阅读 · 0 评论 -
Expression Add Operators【282】
public class Solution { public List addOperators(String num, int target) { List list = new ArrayList(); if(num == null || num.length() == 0) return list; char ch[] = num.toChar原创 2015-09-29 21:23:04 · 461 阅读 · 0 评论 -
Perfect Squares【279】
public class Solution { public int numSquares(int n) { int arr[] = new int[n+1]; arr[1] = 1; for(int i=2 ;i<=n; i++){ int j=1; int min = 10原创 2015-09-28 15:24:14 · 452 阅读 · 0 评论 -
Move Zeroes【283】
public class Solution { public void moveZeroes(int[] nums) { for(int i=0;i<nums.length;i++){ if(nums[i] == 0){ for(int j=i;j<nums.length;j++){原创 2015-09-26 21:26:24 · 397 阅读 · 0 评论 -
kmp算法分析
kmp算法真的是很难理解的一枚算法,前前后后看了很多篇博客才有那么理解。首先我们看看在kmp算法中有哪些对象,一是原始字符串O,二是待匹配字符串(P)。正常的情况下我们需要挨个匹配,也就是说对1<i<O.length(), 我们都需要匹配,还可以是1<i<(O.length() - P.length())。这种匹配的时间复杂度为(O.length() - P.length()) * P.length原创 2017-07-26 17:01:14 · 321 阅读 · 0 评论