当前位置:网站首页>556. The next larger element III: simple construction simulation questions
556. The next larger element III: simple construction simulation questions
2022-07-03 14:35:00 【Gong Shui Sanye's Diary of writing questions】
Title Description
This is a LeetCode Upper 556. Next bigger element III , The difficulty is secondary .
Tag : 「 simulation 」、「 Double pointer 」
Give you a positive integer , Please find the smallest integer that meets the conditions , It consists of rearranging Each number present in the consists of , And its value is greater than . If there is no such positive integer , Then return to .
Be careful , The returned integer should be a An integer , If there is an answer that satisfies the meaning of the question , But it's not An integer , Also return to .
Example 1:
Input :n = 12
Output :21
Example 2:
Input :n = 21
Output :-1
Tips :
simulation
According to the meaning , Only given numbers Itself from high to low is 「 Not strictly descending 」 when , We can't find a legal value .
First , We can do it first Take it out, everyone , Deposit nums Array ( The first element of the array is the original number The lowest point of ).
Then try to find the first place to exchange idx( If you can't find , It indicates that there is no legal value , return ), From ( original The lowest point of ) Start looking for , Find the first 「 Descending 」 The location of idx, And then from Find a ratio in the range Exchange the largest decimal with it , Also from the Start looking for , Find the first satisfaction ratio Large number .
When the exchange is completed , It's better than The goal of becoming bigger has been achieved by idx Bit by bit ( Subsequent sorting should be arranged from small to large ), At the same time, after the exchange Still satisfied 「 Not strictly ascending 」 characteristic , So we can apply it 「 Double pointer 」 Flip .
Code :
class Solution {
public int nextGreaterElement(int x) {
List<Integer> nums = new ArrayList<>();
while (x != 0) {
nums.add(x % 10);
x /= 10;
}
int n = nums.size(), idx = -1;
for (int i = 0; i < n - 1 && idx == -1; i++) {
if (nums.get(i + 1) < nums.get(i)) idx = i + 1;
}
if (idx == -1) return -1;
for (int i = 0; i < idx; i++) {
if (nums.get(i) > nums.get(idx)) {
swap(nums, i, idx);
break;
}
}
for (int l = 0, r = idx - 1; l < r; l++, r--) swap(nums, l, r);
long ans = 0;
for (int i = n - 1; i >= 0; i--) ans = ans * 10 + nums.get(i);
return ans > Integer.MAX_VALUE ? -1 : (int)ans;
}
void swap(List<Integer> nums, int a, int b) {
int c = nums.get(a);
nums.set(a, nums.get(b));
nums.set(b, c);
}
}
Time complexity : Spatial complexity :
Last
This is us. 「 Brush through LeetCode」 The first of the series No.556 piece , The series begins with 2021/01/01, As of the start date LeetCode I have in common 1916 questions , Part of it is a locked question , We will finish all the questions without lock first .
In this series , In addition to explaining the idea of solving problems , And give the most concise code possible . If the general solution is involved, there will be corresponding code templates .
In order to facilitate the students to debug and submit code on the computer , I've built a warehouse :https://github.com/SharingSource/LogicStack-LeetCode .
In the warehouse address , You can see the links to the series 、 The corresponding code of the series 、LeetCode Links to the original problem and other preferred solutions .
边栏推荐
猜你喜欢

7-15 calculation of PI

Analysis of gene family characteristics - chromosome location analysis
![[qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?](/img/f6/fe61c84f289f0e74a45946dac687a6.jpg)
[qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?

adc128s022 ADC verilog设计实现

亚马逊、速卖通、Lazada、Shopee、eBay、wish、沃尔玛、阿里国际、美客多等跨境电商平台,测评自养号该如何利用产品上新期抓住流量?

必贝特医药冲刺科创板:年营收97万亏损1.37亿 拟募资20亿

Four data flows and cases of grpc

Thinking about the arrangement problem in the backtracking problem (leetcode questions 46 and 47)

tonybot 人形機器人 紅外遙控玩法 0630

Adc128s022 ADC Verilog design and Implementation
随机推荐
MongoDB索引
ConstraintLayout 的使用
Tonybot humanoid robot checks the port and corresponds to port 0701
洛谷P4047 [JSOI2010]部落划分 题解
Tonybot Humanoïde Robot Infrared Remote play 0630
China PETG market forecast and Strategic Research Report (2022 Edition)
Thread. Sleep and timeunit SECONDS. The difference between sleep
Zzuli: cumulative sum of 1050 factorials
Zabbix添加Calculated items后保存页面成空白
X86 assembly language - Notes from real mode to protected mode
MongoDB数据库入门的常用命令
Zzuli:1052 sum of sequence 4
retrofit
Special research report on the market of lithium battery electrolyte industry in China (2022 Edition)
US stock listing of polar: how can the delivery of 55000 units support the valuation of more than 20billion US dollars
556. 下一个更大元素 III : 简单构造模拟题
修改数据库中的记录为什么报这个错
【7.3】146. LRU缓存机制
全文检索引擎Solr系列—–全文检索基本原理
Sendmail无法发送邮件及发送过慢解决