Problem:
Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Analysis:
It's simple, just replace the give value with the last item in the array.
2015年9月8日星期二
2015年7月9日星期四
Search in Rotated Sorted Array
好无聊啊,只有刷题玩玩,让大脑充实一些。有时候刷题不要死脑经去搞懂最基本的东西,能用就行。其实这道题的核心就是找target, 如果target不在搜索区间内就换。
public class SearchinRotatedSortedArray {
public static int search(int A[], int n, int target)
{
int first=0;
int last=n;
int mid=0;
while(first!=last)
{
mid=(first+last)/2;
if(A[mid]==target)
return mid;
if(A[first]<=A[mid])
{
if(A[first]<=target && target<A[mid])
last=mid;
else
first=mid+1;
}
else
if(A[mid]<target && target<=A[last-1])
first=mid+1;
else
last=mid;
}
return -1;
}
}
2015年5月7日星期四
Compare Version Numbers
Problem:
Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the
The
For instance,
. character.The
. character does not represent a decimal point and is used to separate number sequences.For instance,
2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
Analysis:
Use string.split method. Split the string into two arrays by '.'.
Solution:
1: public static int CompareVersion(string version1, string version2)
2: {
3: string[] v1 = version1.Split('.');
4: string[] v2 = version2.Split('.');
5: int longest = v1.Length > v2.Length ? v1.Length : v2.Length;
6: for(int i=0;i<longest;i++)
7: {
8: int ver1 = i < v1.Length ? int.Parse(v1[i]) : 0;
9: int ver2 = i < v2.Length ? int.Parse(v2[i]) : 0;
10: if (ver1 > ver2) return 1;
11: if (ver1 < ver2) return -1;
12: }
13: return 0;
14: }
订阅:
评论 (Atom)