【面试经典150】day 6
又到算法。
1.多数元素
class Solution {public int majorityElement(int[] nums) {//sort一下,返回nums[n/2]即可int n=nums.length;Arrays.sort(nums);return nums[n/2];}
}
2.轮转数组
class Solution {public void rotate(int[] nums, int k) {int n=nums.length;k%=n;//这里是左闭右闭的reverse(nums,0,n-1);reverse(nums,0,k-1);reverse(nums,k,n-1);}private void reverse(int [] nums,int i,int j){while(i<j){//交换,相遇就不用交换了int tmp=nums[i];nums[i++]=nums[j];nums[j--]=tmp;}}
}
3.买卖股票的最佳时机
class Solution {public int maxProfit(int[] prices) {int cost = Integer.MAX_VALUE;int profit = 0;for (int price : prices) {cost = Math.min(cost, price);profit = Math.max(profit, price - cost);}return profit;}
}