> For the complete documentation index, see [llms.txt](https://junnie.gitbook.io/nine-chapter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://junnie.gitbook.io/nine-chapter/1.binary-search/14first-position-of-target.md).

# 14.First Position of Target

## 1.Description(Easy)

For a given sorted array (ascending order) and a`target`number, find the first index of this number in`O(log n)`time complexity.

If the target number does not exist in the array, return`-1`.

**Example**

If the array is`[1, 2, 3, 3, 4, 5, 10]`, for given target`3`, return`2`.

[**Challenge**](http://lintcode.com/en/problem/first-position-of-target/#challenge)

If the count of numbers is bigger than 2^32, can your code work properly?

## 2.Code

```
 public int binarySearch(int[] nums, int target) {
       if(nums==null || nums.length==0)
         {
             return -1;
         }

         int start=0,end=nums.length-1;
         while(start+1<end)
         {
             int mid=start+(end-start)/2;
             if(nums[mid]==target)
             {
                 end=mid;
             }
             else if(nums[mid]>target)
             {
                 end=mid;
             }
             else
             {
                 start=mid;
             }
         }

         if(nums[start]==target)
             return start;
         if(nums[end]==target)
             return end;

         return -1;

    }
```
