随笔分类 - 算法
摘要:1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 public class Solutio...
阅读全文
摘要:问题描述:给定一个字符串,其中只包含字符‘{’, '}', '[', ']', '(', ')'确定如果输入字符串是有效的。括号必须以正确的顺序排列,“()”和“()[]{ }”都是有效的, "{", " {]"等都是无效的。 解题思路:利用栈,如果不是右括号就压入栈中,如果是右括号,就看前一个字符
阅读全文
摘要:1 class ListNode 2 { 3 int val; 4 ListNode next; 5 ListNode(int x) 6 { 7 val = x; 8 } 9 } 10 public class NthNodeFromEnd { 11 public ListNode removeNthFromEn...
阅读全文
摘要:Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telepho
阅读全文
摘要:public class LongestCommonPrefix { public String longestCommonPrefix(String[] strs) { if(strs == null) return null; if(strs.length == 0) return ""; ...
阅读全文
摘要:整数转换成罗马数字: 罗马数字的基本型为:I=1,V=5,X=10,L=50,C=100,D=500,M=1000,相同的罗马数字最多不能超过三个。所以对于4只能表示为5-1即IV,左减右加。 同理,9=IX,40=XL,90=XC,400=CD,900=CM。根据这些基本型,可以通过贪心算法,每次
阅读全文
摘要:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpo
阅读全文
摘要:问题描述:Implement regular expression matching with support for '.' and '*'. 算法分析:.*可以匹配任意字符串,例如ab匹配.*,不是说让.匹配完a然后再去匹配*,而是*匹配的是.,也就是说(.*)==(..........),所以
阅读全文
摘要:public class StringToInt { public int atoi(String s) { long num = 0; int minus = 0; if(s==null) { return (int)num; } //过滤所有空格 ...
阅读全文
摘要:public class ZigzagConvert { public static String convert(String s, int nRows) { int len = s.length(); if (len == 0 || nRows 0 && i < nRows-1) { ...
阅读全文
摘要:public class LongestPalindrome { // 暴力算法 public String longestPalindrome(String s) { if (s == null) return null; if (s.length() len) { ...
阅读全文
摘要:此算法涉及一个重要数学结论:如果A[k/2-1]<B[k/2-1],那么A[0]~A[k/2-1]一定在第k小的数的序列当中,可以用反证法证明。 算法思想如下: 1,假设A长度为m,B长度为n,m>n,反之亦然。 2,拆分k=pa+pb。 3,如果A[pa-1]<b[pb-1],那证明第A[0]~A
阅读全文
摘要:基本思想:设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。交换排序都不稳定。不稳定。
阅读全文
摘要:基本思想:第一趟取一个基点,然后把序列分成两部分,小于基点和大于基点,每一部分再递归调用快速排序。不稳定。
阅读全文
摘要:将一个元素插入已经有序的序列,和要插入的元素作比较找到插入位置是关键,插入位置后面的元素后移。
阅读全文
摘要:二分插入排序的基本思想是:利用二分搜索算法,在已有序序列中查找元素插入位置,将元素插入这个位置,这个位置后面的元素依次后移。
阅读全文
摘要:// // BinarySearch.c // libin // // Created by 李宾 on 16/4/28. // Copyright © 2016年 李宾. All rights reserved. // #include //非递归 int Binary_Search(int a[], int low, int high, int key) { while ...
阅读全文

浙公网安备 33010602011771号