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 ...
随机推荐
- python3 第七章 - 循环语句
为了让计算机能计算成千上万次的重复运算,我们就需要循环语句. Python中的循环语句有 while for 循环语句的执行过程,如下图: while 循环 Python中while语句的一般形式: ...
- js_3_for_if_try
在js中有哪些特殊变量? null 指向一个空地址,一个特殊的地址 var u 定义了一个特殊变量u,类型未定义,boolean(u)=false js中的for循环是什么样子? 对列表: for(v ...
- python_为被装饰的函数保留元数据
案例: 在函数对象中保存着一些函数的元数据,如: f.__name__ 函数名 f.__doc__ 函数文档 f.__moudle__ 函数所 ...
- Maven的Archetype简介
Archetype,骨架的意思. 文章出处:http://m.blog.csdn.net/blog/FireOfStar/42526027 Archetype是什么? 简单的说,Archetype是M ...
- JavaScript基础:BOM的常见内置方法和内置对象
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. BOM的介绍 JavaScript的组成 JavaScript基础分为三 ...
- 检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
这两个概念看了忘,碰着了又看,老是傻傻的分不清楚,今天把心得结合从网上搜的资料简单整理一下,希望帮自己明确区分开这两个概念,并牢牢的记住 1.检查型异常(Checked Exception) 个人理解 ...
- Makefile 的使用
第一篇: OBJS = ./persion.o all : persion @echo "version 03" persion : $(OBJS) g++ -o $@ $^ ./ ...
- 【原创】python实现视频内的face swap(换脸)
1.准备工作,按博主的环境为准 Python 3.5 Opencv 3 Tensorflow 1.3.1 Keras 2 cudnn和CUDA,如果你的GPU足够厉害并且支持的话,可以选择安装 那就先 ...
- python并发编程之多进程(理论)
一.什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 二.进程与程序的区别 程序:仅仅是一堆代 进程:是指打开程序运行的过程 三.并发与并行 并发与并行是指cpu运行多个 ...
- wpf timePicker 时间选择控件
wpf里有日期选择控件,但没有时间选择控件.其他地方也有类似的,但效果并不太好,而且复杂.所以就自己写了个.参考codeproject上的. 分两部分. 第一部分是.cs文件.也就是control控件 ...