LeetCode week252
1、三除数
判断一个整数是否只有三个除数。遍历查看整数的除数个数。
具体代码参考:
https://github.com/wuli2496/OJ/blob/master/LeetCode/week252/5830%E4%B8%89%E9%99%A4%E6%95%B0.cpp
2、你可以工作的最大周数
给定n个项目,每个项目由对应的阶段任务组成。每周只能做一个任务,并且要求连续两周不能做同一个项目中的任务。问在违反规则的情况下,最多能工作多少周。
使用贪心算法,从有最多阶段任务的项目考虑,如果任务数小于其它项目的任务之和+1,则可以完成所有的项目。否则所花费周数为2*其化项目之和+1
具体代码参考:
https://github.com/wuli2496/OJ/blob/master/LeetCode/week252/5831%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%B7%A5%E4%BD%9C%E7%9A%84%E6%9C%80%E5%A4%A7%E5%91%A8%E6%95%B0.cpp
3、收集足够苹果的最小花园周长
在一个二维平面内放置苹果,苹果坐标只能是整数,在放置n个苹果情况下,土地的最小周长。
在左上角为(-n,n),右下角为(n, -n)时
根据需要的苹果数计算最小的n即可。具体代码参考:
https://github.com/wuli2496/OJ/blob/master/LeetCode/week252/5187%E6%94%B6%E9%9B%86%E8%B6%B3%E5%A4%9F%E8%8B%B9%E6%9E%9C%E7%9A%84%E6%9C%80%E5%B0%8F%E8%8A%B1%E5%9B%AD%E5%91%A8%E9%95%BF.cpp
4、统计特殊子序列的数目
由正整数个0,紧接正整数个1,最后正整数个2组成的为特殊序列,求nums数组中满足条件的序列个数。
用f(i,j)表示数组num[0..i]中满足条件j的序列个数。
其中j=0表示由正整数个0组成的序列。
j=1表示由正整数个0,紧接着正整数个1组成的序列
j=2表示由正整数个0,紧接着正整数个1,最后正整数个2组成的序列
状态转移时
当nums[i]=0时,在nums[0..i-1]元素组成的类型为0的子序列后添加0,一种情况是在上一状态情况下直接追加这个0,另外一种情况是是前一状态的0用这个0来作替换,还有一种情况是这个0单独作为新的类型为0的子序列。所以其状态转移为
f(i,0)=f(i-1,0)+f(i-1,0)+1=2*f(i-1,0)+1,对于f(i,1)和f(i,2)保持不变
当nums[i]=1时,在nums[0..i-1]元素组成的类型为1的子序列后添加1,一种情况是在前一状态情况下直接追加这个1,另外一种情况是在前一状态的1用这个1来作替换,还有一种情况是在前一状态类型为0的基础上加上这个1。所以其状态转移为
f(i,1)=f(i-1,1)+f(i-1,1) +f(i-1,0)=2f(i-1,1)+f(i-1,0)
当nums[i]=2时,在nums[0..i-1]元素组成的类型为2的子序列后添加2,一种情况是在前一状态情况下直接追加这个2,另外一种情况是在前一状态的2用这个2来作替换,还有一种情况是在前一状态类型为1的基础上加上这个2。所以其状态转移为
f(i,2)=f(i-1,2)+f(i-1,2)+f(i-1,1)=2f(i-1,2)+f(i-1,1)
具体代码参考:https://github.com/wuli2496/OJ/blob/master/LeetCode/week252/5833%E7%BB%9F%E8%AE%A1%E7%89%B9%E6%AE%8A%E5%AD%90%E5%BA%8F%E5%88%97%E7%9A%84%E6%95%B0%E7%9B%AE.cpp
LeetCode week252相关推荐
- leetcode 5. Longest Palindromic Substring 字符串中的最长回文数 逐步从O(n^2)优化至线性时间
题目 解析 思路一 暴力解法 思路二 指针+最大长度 思路3 由中间至两边找回数 思路4 Manacher's algorithm 线性时间 参考文档 题目 链接 给定一个字符串 s,找到 s 中最长 ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
- leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法
题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...
- leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法
题目链接 根据我们之前介绍的滑动窗口法的解法: 滑动窗口法详解 leetcode 438. Find All Anagrams in a String 滑动窗口法 这题,我们不难解决,使用之前的模板. ...
- leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
leetcode:26 对数组元素进行去重,使得原数组重复元素最多保留1个 限制: 我们不可以额外分配数组,必须保持空间复杂度为O(1) 这个并不难实现: class Solution(object) ...
- LeetCode简单题之二进制表示中质数个计算置位
题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...
- LeetCode简单题之删除字符使字符串变好
题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答案总 ...
- LeetCode简单题之找出两数组的不同
题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中: answer[0] 是 nums1 中所有 不 存在于 nums2 中的 ...
- LeetCode中等题之区域和检索 - 数组可修改
题目 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nu ...
最新文章
- 八个最致命的Linux命令!
- 处理js事件时,获取键盘数字注意
- python后端工程师 数据爬虫
- NET平台下Web树形结构程序设计
- python中协程与函数的区别_深入浅析python 协程与go协程的区别
- android Spinner点击事件处理
- linux date抖动,一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
- 如何改变一个按钮的位置
- product category no need to optimize
- myeclipse试用小记----Hibernate多对一双向关联(2)
- windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
- Windows环境下安装python+tensorflow
- 宫崎峻《となりのトトロ》(龙猫)全剧本(中日对照)(2)
- Atitit rest框架选型总结 Resteasy 实现 但是麻烦 作为JAX-RS的标准实现,RestEasy还具有以下亮点特性: 1)不需要配置文件,只要把JARs文件放到类路径里面
- KDD China技术峰会回顾:大牛云集,教你如何基于大数据 手握人工智能未来
- C语言基础练习题初学者可参考
- ITIL 4 讲解:服务目录
- 学计算机cpu重要还是显卡重要,电脑玩游戏CPU重要还是显卡更重要?
- 模仿百思不得姐项目开发总结
- 暗黑破坏神资源 - 紫冰整理