18、删除链表中重复的节点

/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ public class Solution { ...

2018-05-02 15:26:09

阅读数 60

评论数 0

20、表示数值的字符串

public class Solution { public boolean isNumeric(char[] str) { String s=String.valueOf(str); //? 出现一次或零次 //+ 至少出现一次 ...

2018-05-02 14:42:36

阅读数 53

评论数 0

19、正则表达式匹配

整体思路:当模式中的第二个字符不是“*”时: 1、如果字符串第一个字符和模式中的第一个字符相匹配,那么字符串和模式都后移一个字符,然后匹配剩余的。 2、如果 字符串第一个字符和模式中的第一个字符相不匹配,直接返回false。而当模式中的第二个字符是“*”时: 如果字符串第一个字符跟模式第一个...

2018-05-02 11:07:49

阅读数 61

评论数 0

36、二叉搜索树与双向链表

整体思路: 函数f对该树排序,返回值为链表的头节点 f(左子树) 将左子树最后一个结点和root连接 f(右子树) 将右子树头结点和root连接 public class Solution { public TreeNode Convert(TreeNode pRootOfTr...

2018-05-01 16:47:44

阅读数 41

评论数 0

38、字符串的排列

import java.util.ArrayList; import java.util.HashSet; public class Solution { public ArrayList<String> Permutation(String s...

2018-05-01 16:44:10

阅读数 84

评论数 0

40、最小的k个数

import java.util.ArrayList; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k)...

2018-04-28 16:15:35

阅读数 22

评论数 0

43、1-n整数中1出现的次数

整体思路: 该位为0,该位大于1,该位等于1,分开处理 public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int result = 0; int m = ...

2018-04-28 15:43:41

阅读数 20

评论数 0

59、滑动窗口的最大值

1、滑动窗口的最大值 思路: deque中只保存可能会是最大值的数,每新加入一个数,就把队列中比该数大的数全部删除,因为前面的数已经不可能成为最大数import java.util.ArrayDeque; import java.util.ArrayList; public class Sol...

2018-04-20 16:47:32

阅读数 38

评论数 0

41、数据流中的中位数

思路: 前一半数用最大堆保存,后一半数用最小堆保存,并且最大堆的所有数小于最小堆的所有数,这样求中位数就是当最大堆最小堆堆顶的和的一半。import java.util.ArrayList; public class Solution { ArrayList<Integer>...

2018-04-18 10:09:50

阅读数 71

评论数 1

51、数组中的逆序对

思路: 利用归并排序的思想,先对前一半数组统计逆序对后从小到大排序,再对后一半数组统计逆序对后排序,再统计前后两个数组之间的逆序对。用空间换时间。 import java.util.Arrays; public class Solution { public int InverseP...

2018-04-16 10:53:01

阅读数 73

评论数 0

35、复杂链表的赋值

public RandomListNode Clone(RandomListNode pHead) { if(pHead==null) return null; //将新链表每个节点插在旧链表对应的每个节点后面 RandomListNode ...

2018-04-16 09:46:10

阅读数 47

评论数 0

排序(二)堆排序、归并排序、快速排序

本文是是时间复杂度为O(nlogn)的排序算法 堆排序 思路:(以最大堆举例) 将数组array变成最大堆,array[0]则为数组中的最大数,调换array[0]和array[i](i为未排序的数组的末尾)。然后逐步减小i,即array[0]到array[i]为未排序的数组。先确定数组...

2018-04-15 16:51:26

阅读数 76

评论数 1

排序算法(一)冒泡排序,简单选择排序,直接插入排序,希尔排序

冒泡排序

2018-04-13 16:54:17

阅读数 312

评论数 0

自己实现queue、stack

1、用数组实现的stack,包括动态调整大小,可迭代,泛型import java.util.*;public class arraystack<item> implements Iterable<item> { private item[] stack = (ite...

2018-04-13 10:57:02

阅读数 105

评论数 0

50、第一个只出现一次的字符

题目一:字符串中第一个只出现一次的字符import java.util.ArrayList; import java.util.HashMap; import java.util.Map;public class Solution { public char f(String s) ...

2018-04-12 21:10:20

阅读数 36

评论数 0

45、把数组排成最小的数

import java.util.Arrays; import java.util.Comparator; public class Solution { public String PrintMinNumber(int [] numbers) { if(numbers.l...

2018-04-12 15:48:40

阅读数 30

评论数 0

9、两个栈实现队列

题目一:用两个栈实现一个队列 解法一:stack1永远用作存放元素,stack2在pop时作为转换工具import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Int...

2018-04-12 10:15:33

阅读数 25

评论数 0

11、旋转数组的最小数字

1、遇到的第一个比前一个数字小的数就是result,不存在就是array[0]是resultpublic class Solution { public int minNumberInRotateArray(int [] array) { if(array.length==...

2018-04-11 23:50:15

阅读数 60

评论数 0

主题提取LDA方法

此处用fetch_20newsgroups数据训练import gensim from sklearn.datasets import fetch_20newsgroups from gensim.utils import simple_preprocess from gensim.parsing...

2018-04-11 18:08:02

阅读数 1251

评论数 1

二叉搜索树

二叉搜索树需满足以下四个条件:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树; 没有键值相等的节点。 二叉搜索树的特点: 1、中序遍历一定是从小到大排列总体思路:先...

2018-04-10 11:35:43

阅读数 35

评论数 0

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