Example #1
0
int main()
{
int a[10]={5,42,45,41,7,4,8,9,3,10};
printf("max=%d\n",max_arr(a,10));

return 0;
}
Example #2
0
void lognormalize(float *logp, int start, int length) {
  float m = max_arr(logp, start, length);
  for (int i = start; i < start + length; i++) {
    logp[i] = native_powr(exp(1.0f), logp[i] - m);
  }
  float p_sum = sum(logp, start, length);
  for (int i = start; i < start + length; i++) {
    logp[i] = logp[i] / p_sum;
  }
}
int sorted_repetitions(int m, int n)
{
    if (repetitions)
        free_repetitions(repetitions, count);

    if (!max_val) {
        max_val = malloc(sizeof(int) * n);
        int i;
        for (i = 0; i < n; ++i)
            max_val[i] = INT_MAX;
    }
    max = max_arr(max_val, n);

    repetitions = NULL;
    count = 0;
    gn = n;
    int *c = calloc(n, sizeof(int));
    reps(m, n, c);
    free(c);

    return count;
}
Example #4
0
 int maximumGap(vector<int>& nums) {
     int len = nums.size();
     if(len < 2)
         return 0;
     int max_num = -32768;
     int min_num = 32767;
     for (int i = 0; i < len; i ++) {
         max_num = max(max_num, nums[i]);
         min_num = min(min_num, nums[i]);
     }
     if (max_num == min_num)
         return 0;
     int ave_gap = ceil((max_num - min_num) * 1.0 / (len - 1));
     int bucket = (max_num - min_num) / ave_gap + 1;
     vector<int> max_arr(bucket, min_num - 1), min_arr(bucket, max_num + 1);
     
     for (int i = 0; i < len; i ++) {
         int idx = (nums[i] - min_num)/ave_gap;
         if (min_arr[idx] > nums[i]) {
             min_arr[idx] = nums[i];
         }
         if (max_arr[idx] < nums[i]) {
             max_arr[idx] = nums[i];
         }
     }
     int max_gap = 0;
     int cur_max = max_arr[0];
     for (int i = 1; i < bucket; i ++) {
         if (min_arr[i] != max_num + 1) {
             if(max_gap < (min_arr[i] - cur_max))
             {
                 max_gap = min_arr[i] - cur_max;
             }
             cur_max = max_arr[i];
         }
     }
     return max_gap;
 }