【题目】
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
【题意】
给定一个已排序的数组(不存在重复元素),将它转换成一棵平衡二叉搜索树。
【思路】
由于平衡二叉树要求左右子树的高度差绝对值相遇等于1,也就是说左右子树尽可能包含相同数目节点。
则使用二分法来解本题即可。...
分类:
其他好文 时间:
2014-06-20 11:03:31
阅读次数:
246
类集框架:jdk提供的一系列类和接口,位于java.util包当中,主要用于存储和管理对象,主要分为三大类:集合、列表和映射。集合Set:用于存储一系列对象的集合。无序、不允许重复元素。列表List:用来存储有顺序的一组数据的集合。有序映射Map:以键值对的方式进行数据存储的集合。类集框架主体结构:...
分类:
编程语言 时间:
2014-06-06 18:24:14
阅读次数:
271
【题目】
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
【题意】
给定一个已排序的链表,删除其中的重复元素
【思路】
维护两个指针prev和cur, cur指针负责扫描链表,prev指向cur的前一...
分类:
其他好文 时间:
2014-06-03 04:05:39
阅读次数:
231
今天偶尔从一个师兄那里看到了checkio,感觉很好玩。
我看到的第一个题是要求写一个函数,接收一个数组,然后返回其中的重复元素,而且元素的顺序不能发生变化。换句话说,就是去掉其中不含重复的元素。比如:
checkio([1,
2,
3,
1,
3])
==
[1,
3,
1,
3],
"1st
example"
checkio([1,
2,
3,...
分类:
编程语言 时间:
2014-06-03 03:16:33
阅读次数:
360
/** * 循环统计数组或集合中的重复元素个数 * @param args */ public
static void main(String[] args) { Map map = new HashMap(); String[] ss = ...
分类:
其他好文 时间:
2014-05-27 16:23:14
阅读次数:
290
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素.
集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric
difference(对称差集)等数学运算.sets 支持x in set,l...
分类:
编程语言 时间:
2014-05-27 01:08:23
阅读次数:
297
出题:一个长度为N的数组,其中的元素取值范围是1到N,要求快速判断数组是否存在重复数字;分析:解法1:如果N个元素的范围都是在1到N,所以如果没有重复元素,则每一个位置恰好可以对应数组中的一个元素之,通过将当前元素k交换到其本身应该在的位
置k,也就是k=array[i], array[array[...
分类:
其他好文 时间:
2014-05-26 03:10:21
阅读次数:
191
【题目】
原文:
2.1 Write code to remove duplicates from an unsorted linked list.
FOLLOW UP
How would you solve this problem if a temporary buffer is not allowed?
译文:
从一个未排序的链表中移除重复的项
...
分类:
其他好文 时间:
2014-05-22 12:04:13
阅读次数:
196
20.Set接口的实现类:
Set接口存放的元素是无序的且不包含重复元素。
1>实现类HashSet:
HashSet类根据元素的哈希码进行存放,取出时也可以根据哈希码快速找到。HashSet不保存元素的添加的顺序。
例子:
import java.util.HashSet;
import java.util.Iterator;
public class Stude...
分类:
编程语言 时间:
2014-05-22 10:54:09
阅读次数:
1812
当有重复元素的时候呢?
不用拍脑袋都会想到一种方法,也是所有有重复元素时的通用处理方法,维护一个set,如果这个元素没加入过就加入,加入过了的忽略掉。但是,在这道题上这个通用方法居然超时了!
怎么办?想一下为什么会这样,假设我们要排列的数字是1111112,当当前的排列中没有1时,取哪个1生成一遍,都是一样的。只有当前面的1都用过了,必须轮到这个1出场的时候,它才会有价值。更明确一点说,假设我...
分类:
其他好文 时间:
2014-05-15 05:36:25
阅读次数:
198