Ejemplo n.º 1
0
static
int
choice( void )
{
    int i, n;

    rb->yield();

    for( n = i = 0 ; i < 81 ; ++i )
        if( IS_EMPTY( i ) )
        {
            possible[ n ] = SET_INDEX( i ) | SET_DIGIT( numset( board[ i ] ) );

            /* Inconsistency if square unknown, but nothing possible */
            if( 9 == GET_DIGIT( possible[ n ] ) )
                return -2;
            ++n;
        }

    if( 0 == n )
        return -1;      /* All squares known */

    rb->qsort( possible, n, sizeof( possible[ 0 ] ), cmp );
    return GET_INDEX( possible[ 0 ] );
}
Ejemplo n.º 2
0
static
void
count_set_digits( int el, int (*idx_fn)( int, int ) )
{
    int i;
    rb->memset( counts, 0x00, sizeof( counts ) );
    for( i = 0 ; i < 9 ; ++i )
        digits[ i ] = numset( board[ (*idx_fn)( el, i ) ] );
}
Ejemplo n.º 3
0
	int removeDuplicates(vector<int>& nums) {
		set<int> numset(nums.begin(),nums.end());
		nums.clear();
		set<int>::iterator it;
		for ( it = numset.begin(); it != numset.end(); it++)
		{
			nums.push_back(*it);
		}
		return nums.size();
	}
    int findMissing(vector<int> &nums) {
        vector<bool> numset(nums.size()+1, false);
        if (nums.size() == 0)
            return 0;
        if (nums.size() == 1)
            return nums[0]+1;
        // write your code here
        for (auto item: nums)
            numset[item] = true;

        for (int i=0; i<numset.size(); i++)
            if (numset[i] == false)
                return i;
    }