leetcode 484. Find Permutation 思维题
https://leetcode.com/contest/leetcode-weekly-contest-16a/problems/find-permutation/
设原本的数字是0,那么按照它的DI来模拟,D就减1,I就+1
比如DDIIDI,就是0、-1、-2、-1、0、-1、0
那么找到第一个最小的,现在是-2,那么把它安排去第一个没出现过的数字,也就是1了,
然后,它左边的全部,就要确定了,3、2、1
然后再把[4, en]继续这样模拟。
需要注意的是,遇到一个I,就马上停止了,不然DDDIIIIDDDDDDDDDDD这样 的数据会hack。其实停止也很正常,也就是因为是上升了,是有很多种情况的,首先把前面的贪心优先字典树最小后再说,I的话,可以设置成很大也没问题,字典序已经是最有了。
class Solution { public:vector<int> findPermutation(string s) {vector<int> t;vector<int> ans;ans.push_back(0);t.push_back(0);for (int i = 0; i < s.size(); ++i) {if (s[i] == 'D') t.push_back(t[i] - 1);else t.push_back(t[i] + 1);ans.push_back(0);}int want = 1;int be = 0, en = t.size() - 1;while (want <= s.size() + 1) {int pos = tofind(t, be, en);for (int i = pos; i >= be; --i) {ans[i] = want++;}be = pos + 1;}return ans;}int tofind(vector<int> &num, int be, int en) {int now = 1e9;int id = be;for (int i = be; i <= en; ++i) {if (i - 1 >= be && num[i] > num[i - 1]) return id;if (now > num[i]) {id = i;now = num[i];}}return id;} };
View Code
转载于:https://www.cnblogs.com/liuweimingcprogram/p/6339213.html
leetcode 484. Find Permutation 思维题相关推荐
- 【数字全排列】LeetCode 31. Next Permutation
LeetCode 31. Next Permutation 参考博客:http://www.cnblogs.com/grandyang/p/4428207.html Solution0:一个偷鸡摸狗的 ...
- little w and Soda(思维题)
链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
- 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...
- yoyo思维题(困难) 组合数学
问题 B: yoyo思维题(困难) 时间限制: 1 Sec 内存限制: 256 MB 提交: 11 解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...
- 1884: 三个家庭(思维题)
1884: 三个家庭 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 244 Solved: 81 [Submit][Status][Web Board] ...
最新文章
- Travis CI : 最小的分布式系统(三)
- 概率统计:第一章 概率论的基本概念
- 蓄电池的容量及内阻测试
- TF之pix2pix:基于TF利用Facades数据集训练pix2pix模型、测试并进行生成过程全记录
- 服务器操作系统co,搭建coturn服务器
- 关于提高社交网站SNS竞争力的分析
- 异步Udp监听关闭 出现异常,访问已释放的资源或者其他错误的解决方法
- mysql 优化 整体思路
- windows服务器虚拟机 全屏,虚拟机安装Windowsxp系统后无法全屏的解决方法
- MSP430常见问题之开发工具类
- 20190729杭电多校第三场
- 峰会•沙龙•招聘 | 记零数科技多线并进的一天
- 电脑USB口输出的是什么电平
- JAVA GUI(图形用户界面)
- 从经济学角度解释:为什么画家总是死后成名?
- Proximal Policy Optimization Algorithms翻译
- 91文件夹操作——创建和删除多级目录
- 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分
- caffe学习笔记31-理解全连接层
- OpenGL 基于OpenGL的三维机器人仿真
热门文章
- 漫步数学分析二十一——逐点收敛与一致收敛
- leetcode - 1024. 视频拼接
- 识别和追踪主题层次的影响力者(来自2018 Machine Learning 论文学习笔记)
- 国外问答网站Quora数据的爬虫 Java
- mysql中in的使用
- android磁场传感器页面布局在哪,基于磁场检测的寻线小车传感器布局研究
- cmd指令大全指令_汇编语言常用指令大全
- httpurlconnection 封装_不要再封装各种Util工具类了,看看这个框架
- c++ 模板类实现堆栈实验报告_C++类模板实现栈
- Windows 10 开启有线无线802.1x脚本