## 416 Partition Equal Subset Sum

Given a **non-empty** array containing **only positive integers**, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.

Given a **non-empty** array containing **only positive integers**, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.

Given an array of integers with possible duplicates, randomly output the index of a given target number. You can assume that the given target number must exist in the array.

A character in UTF8 can be from **1 to 4 bytes** long, subjected to the following rules:

- For 1-byte character, the first bit is a 0, followed by its unicode code.

Given an encoded string, return it’s decoded string.

The encoding rule is: `k[encoded_string]`

, where the *encoded_string* inside the square brackets is being repeated exactly *k* times. Note that *k* is guaranteed to be a positive integer.

There is a list of sorted integers from 1 to *n*. Starting from left to right, remove the first number and every other number afterward until you reach the end of the list.

Suppose we abstract our file system by a string in the following manner:

The string `"dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"`

represents:

Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.

**Examples:**

Given an integer *n*, return 1 - *n* in lexicographical order.

For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].

Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000.

Design a data structure that supports all following operations in *average* **O(1)** time.

`insert(val)`

: Inserts an item val to the set if not already present.

Given an integer array with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.