算法

数组中的最长连续子序列

描述

给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)

示例1

输入:

[100,4,200,1,3,2]

返回值:

4

示例2

输入:

[1,1,1]

返回值:

1

备注:

1≤n≤1051 \leq n \leq 10^51≤n≤105
1≤arri≤1081 \leq arr_i \leq 10^81≤arri​≤108

题解:

import java.util.*;


public class Solution {
    /**
     * max increasing subsequence
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int MLS (int[] arr) {
        // write code here
        Arrays.sort(arr);
        int maxCount=0;
        int count=1;
        for(int i=0;i<arr.length-1;i++){
            int cur=arr[i];
            int next=arr[i+1];
            if(cur==next)continue;
            if(next-cur==1){
                count++;
            }else{
                count=1;
            }
            if(count>maxCount)maxCount=count;
        }
        return maxCount;
    }
}

asin() 反正弦函数

asin() 反正弦函数,求反正弦值

double asin(double x);

asin() 函数的功能是求反正弦值。

反正弦函数 asin() 和正弦函数 sin() 的功能正好相反:sin() 是已知一个角的弧度值 x,求该角的正弦值 y;而 asin() 是已知一个角的正弦值 y,求该角的弧度值 x。

参数

返回值

正常情况下(x 的取值位于区间[-1, 1]),函数返回正弦值为 x 的角的弧度数。

如果 x 的取值超出范围,那么 asin() 将发生域错误,此时返回值为 NaN

发生域错误时,asin() 还会设置 <errno.h> 头文件下的 errno 和 <fenv.h> 头文件下的 FE_INVALID,我们也可以借此检测出域错误。关于域错误的更多内容请猛击《域错误(domain error)》。

实例

【实例1】求 0.5 的反正弦值(正常情况)。

  1. /* asin example */
  2. #include <stdio.h> /* printf */
  3. #include <math.h> /* asin */
  4. #define PI 3.14159265
  5. int main ()
  6. {
  7. double param, result;
  8. param = 0.5;
  9. result = asin (param) * 180.0 / PI;
  10. printf (“The arc sine of %f is %f degrees\n, param, result);
  11. return 0;
  12. }

运行结果:
The arc sine of 0.500000 is 30.000000 degrees

【实例2】求 2 的反正弦值(发生域错误)。

  1. /* asin example */
  2. #include <stdio.h> /* printf */
  3. #include <math.h> /* asin */
  4. #include <errno.h> /* errno */
  5. #include <fenv.h> /* FE_INVALID */
  6. #define PI 3.14159265
  7. int main()
  8. {
  9. double result = asin(2) * 180.0 / PI;
  10. printf(“result is :%f\n, result);
  11. if (errno == EDOM) {
  12. perror(“errno == EDOM”);
  13. }
  14. if (fetestexcept(FE_INVALID)) {
  15. printf(“FE_INVALID is set\n);
  16. }
  17. return 0;
  18. }

在 VS2015 下的运行结果:
result is :-nan(ind)
errno == EDOM: Domain error
FE_INVALID is set

在 GCC 下的运行结果:
result is :nan
errno == EDOM: Numerical argument out of domain
FE_INVALID is set

在 Xcode 下的运行结果:
result is :nan
FE_INVALID is set