LeetCode第七天
数组 Medium
40.(162)Find Peak Element

JAVA
//斜率思想,二分法
class Solution {
    public int findPeakElement(int[] nums) {
        int l=0,r=nums.length-1;
        while(l<r){
            int mid = (r+l)/2;
            if(nums[mid]>nums[mid+1])
                r = mid;
            else
                l = mid+1;
        }
        return l;
    }
}
41.(731)My Calendar II

JAVA
public class MyCalendarTwo {
    List<int[]> calendar;
    List<int[]> overlaps;//已经重叠过一次的区间
    MyCalendarTwo() {
        calendar = new ArrayList();
        overlaps = new ArrayList();
    }
    public boolean book(int start, int end) {
        for (int[] iv: overlaps) {
            if (iv[0] < end && start < iv[1]) return false;
        }
        for (int[] iv: calendar) {
            if (iv[0] < end && start < iv[1])
                overlaps.add(new int[]{Math.max(start, iv[0]), Math.min(end, iv[1])});
        }
        calendar.add(new int[]{start, end});
        return true;
    }
}
42.(153)Find Minimum in Rotated Sorted Array

JAVA
class Solution {
    public int findMin(int[] nums) {
        int l = 0;
        int r = nums.length-1;
        while(l<r){
            int mid = (l+r)/2;
            if(nums[mid]<nums[r])
                r = mid;
            else
                l = mid+1;
        }
        return nums[r];
    }
}
class Solution {
    public int findMin(int[] nums) {
       return find(nums,0,nums.length-1);
    }
    public int find(int[] nums, int l, int r) {
        if(nums[l] <= nums[r]) {
            return nums[l];
        }
        int mid = (l + r) / 2;
        return Math.min(find(nums,l,mid),find(nums,mid+1,r));
    }
}
43.(152)Maximum Product Subarray

JAVA
class Solution {
    public int maxProduct(int[] nums) {
        if(nums.length == 0){
            return 0;
        }
        int maxPre = nums[0];
        int minPre = nums[0];
        int max = nums[0];
        for(int i =1;i<nums.length;i++){
            int maxHere = Math.max(Math.max(maxPre*nums[i],minPre*nums[i]),nums[i]);
            int minHere = Math.min(Math.min(maxPre*nums[i],minPre*nums[i]),nums[i]);
            max = Math.max(max,maxHere);
            maxPre = maxHere;
            minPre = minHere;
        }
        return max;
    }
}
44.(611)Valid Triangle Number

JAVA
class Solution {
    public int triangleNumber(int[] nums) {
        int count = 0;
        Arrays.sort(nums);
        for(int i =0;i<nums.length-2;i++){
            if(nums[i]==0)
                continue;
            int k = i+2;
            for(int j = i+1;j<nums.length-1;j++){
                while(k<nums.length&&nums[i]+nums[j]>nums[k])
                    k++;
                count += k-j-1;
            }
        }
        return count;
    }
}
45.(621)Task Scheduler

JAVA
//计算休眠时间,再加上任务时间等于总时间
class Solution {
    public int leastInterval(char[] tasks, int n) {
        int[] map = new int[26];
        for(char c : tasks)
            map[c-'A']++;
        Arrays.sort(map);
        int idle = (map[25] -1)*n;
        for(int i=24;i>=0&&map[i]>0;i--){
            idle -= Math.min(map[i],map[25]-1);
        }
        return idle >0 ? tasks.length+idle:tasks.length;
    }
}
LeetCode第七天的更多相关文章
- C#版 - Leetcode 504. 七进制数 - 题解
		C#版 - Leetcode 504. 七进制数 - 题解 Leetcode 504. Base 7 在线提交: https://leetcode.com/problems/base-7/ 题目描述 ... 
- [递归回溯] LeetCode 504七进制数(摸鱼版)
		LeetCode 七进制数 前言: 这个就没什么好说的了 题目:略 步入正题 进位制转换 10 -n 余数加倒叙 没什么好讲的直接上七进制代码 偷个懒 10进位制转7 class Solution { ... 
- leetcode第七题--Reverse Integer
		Problem: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ... 
- Java实现 LeetCode 504 七进制数
		504. 七进制数 给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10&qu ... 
- leetcode第七题Reverse Integer (java)
		Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, retu ... 
- LeetCode第七题
		Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have you ... 
- 领扣(LeetCode)七进制数 个人题解
		给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" 注意: 输入 ... 
- LeetCode 第七题--整数反转
		1. 题目 2.思路 1. 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 ... 
- [LeetCode] Base 7 基数七
		Given an integer, return its base 7 string representation. Example 1: Input: 100 Output: "202&q ... 
随机推荐
- Django_xadmin_应用外键搜索功能错误
			问题: 当我在给某一张表加上外键搜索的时候,会出现 TypeError: Related Field got invalid lookup: icontains 问题原因: a 表关联 b表,也就是说 ... 
- 初始化本地项目到远程仓库【git】
			大部分情况,都是从远程仓库clone项目,步骤很简单. 今天要把本地项目初始化到远程仓库的步骤记录下来,其实也很简单,几步就好: #初始化本地仓库 git init #将本地内容添加至git索引中 g ... 
- Redis+Springmvc搭建(附windows下安装)
			作者注:本文主要用于个人学习.同时欢迎交流讨论 1.添加maven依赖: <dependency> <groupId>org.springframework. ... 
- Python Django连接(听明白了是连接不是创建!)Mysql已存在的数据库
			再声明一次!是连接不是创建!网上的一些人难道连接和创建这俩词都弄不懂就在那里瞎写一些文章! (Python Django连接存在的数据库) Python连接存在的数据库-------MySql 1.首 ... 
- JAVA中JPA的主键自增长注解设置
			JPA的注解来定义实体的时候,使用@Id来注解主键属性即可.如果数据库主键是自增长的,需要在增加一个注解@GeneratedValue,即: @GeneratedValue(strategy=Gene ... 
- JAVA中文件与Byte数组相互转换的方法
			JAVA中文件与Byte数组相互转换的方法,如下: public class FileUtil { //将文件转换成Byte数组 public static byte[] getBytesByFile ... 
- 【转】几种现代GPS测量方法和技术
			随着科技的发展,GPS测量技术和方法也在不断的改进和更新,目前用得最多的GPS测量技术方法有如下几种:静态和快速静态定位,差分GPS,RTK,网络RTK技术等等,下面将逐一介绍: 1.静态与快速静态定 ... 
- Lucene:基于Java的全文检索引擎简介
			Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用J ... 
- 4个强大的Linux服务器监控工具[转]
			本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ... 
- JDK及Tomcat集成到MyEclipse
			JDK及Tomcat集成到MyEclipse 1.安装好MyEclipse 2.破解 3.配置环境JDK D:\jdk1.6.0_21\bin; ==>放在系统path前面 4.打开MyEcli ... 
