子集生成:给定一个集合,枚举它所有可能的子集。(简单起见,这里假设集合中没有重复元素)
一、增量构造法
思路:一次选出一个元素放到集合中。
Code:
void print_subset1(int n, int *A, int cur)
{//增量构造法
for(int i=0;i<cur;++i)
printf("%d ",A[i]);
printf("\n");
...
分类:
其他好文 时间:
2015-02-26 14:59:40
阅读次数:
221
set集合判断元素的唯一性要重写hashcode和equals方法,这样就能保证不会加入重复的元素,但是在以下这种情况下任然可以加入重复元素,即使他们的hashcode和equals方法结果相同public static void main(String[] args) { Set s...
分类:
其他好文 时间:
2015-02-25 16:59:29
阅读次数:
203
题目一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。思路一寻找重复元素,很容易想到建立哈希表来完成,遍历一遍数组就可以将每个元素映射到哈希表中。如果哈希表中已经存在这个元素则说明这就是个重复元素。这种方法可以很方便的在O(n)时间内完成对重复元素的查找。可是题目要求在O(1)的空间。因此采用哈希表这种解法肯定在空间复杂...
分类:
编程语言 时间:
2015-02-19 21:53:02
阅读次数:
504
这道题目看起来很简单,但是用简单的枚举超时。然后用hash存储,这样访问任何元素的时间复杂度为常数。但是需要对重复元素做特殊处理。 1 class Solution { 2 public: 3 vector twoSum(vector &numbers, int target) { 4 5...
分类:
其他好文 时间:
2015-02-13 22:23:04
阅读次数:
183
1、线程安全 线程安全就是说多线程访问同一代码,不会产生不确定的结果。2、List类和Set类 List类和Set类是Collection集合接口的子接口。 Set子接口:无序,不允许重复。 List子接口:有序,可以有重复元素。Set和List对比: Set:检索元素效率低下,删除和插...
分类:
编程语言 时间:
2015-02-05 13:11:39
阅读次数:
142
思路:
大致思路就是,遍历链表找出重复元素的子列并删除重复元素子列,当然,第一个元素开始有重复元素的话比较特种,需要特殊考虑。删除子列的过程稍微有点绕,题目倒是不难理解。...
分类:
其他好文 时间:
2015-02-03 13:27:28
阅读次数:
136
Given a sorted linked list, delete all duplicates such that each elementappear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
HideTags
Linked List
...
分类:
其他好文 时间:
2015-01-31 12:48:48
阅读次数:
144
【题目】
题目为:
有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现
例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
【分析】
给定数组是已经排好序的,且是升序,没有重复元素。
一...
分类:
编程语言 时间:
2015-01-29 21:12:05
阅读次数:
214
原题地址跟Subsets(参见这篇文章)类似。但因为有重复元素,所以要考虑去重问题。什么情况下会出现重复呢?比如S = {5, 5, 5},如果要选1个5,一共有C(3,1)=3种选法,即100, 010, 001,这三种情况在集合的角度看是重复的情况。如果要选2个5,共有C(3,2)=3种选法,即...
分类:
其他好文 时间:
2015-01-29 14:17:51
阅读次数:
160
题目:与上一道题几乎相同;不同之处在于array中允许有重复元素;但题目要求也简单了,只要返回true or falsehttp://www.cnblogs.com/xbf9xbf/p/4254590.html代码:oj测试通过Runtime:73 ms 1 class Solution: 2 .....
分类:
编程语言 时间:
2015-01-28 00:56:28
阅读次数:
145