当前位置:网站首页>LeetCode 1545. Find the k-th bit in the nth binary string
LeetCode 1545. Find the k-th bit in the nth binary string
2022-07-06 16:42:00 【Daylight629】
1545. Find out the N Of the binary strings K position
Here are two positive integers n
and k
, Binary string Sn
The formation rules of are as follows :
S1 = "0"
- When
i > 1
when ,Si = Si-1 + "1" + reverse(invert(Si-1))
among +
Indicates series operation ,reverse(x)
Return to reverse x
The resulting string , and invert(x)
Will flip x Every one of you (0 Turn into 1, and 1 Turn into 0).
for example , The first of the sequences described above 4 The strings are :
S1 = "0"
S2 = "0**1**1"
S3 = "011**1**001"
S4 = "0111001**1**0110001"
Please return Sn
Of The first k
Bit character , Topic data assurance k
It must be Sn
Within the length range .
Example 1:
Input :n = 3, k = 1
Output :"0"
explain :S3 by "0111001", Its first 1 Position as "0" .
Example 2:
Input :n = 4, k = 11
Output :"1"
explain :S4 by "011100110110001", Its first 11 Position as "1" .
Example 3:
Input :n = 1, k = 1
Output :"0"
Example 4:
Input :n = 2, k = 3
Output :"1"
Tips :
1 <= n <= 20
1 <= k <= 2n - 1
Two 、 Method 1
recursive
class Solution {
public char findKthBit(int n, int k) {
if (k == 1) {
return '0';
}
int mid = 1 << (n - 1);
if (k == mid) {
return '1';
} else if (k < mid) {
return findKthBit(n - 1, k);
} else {
k = mid * 2 - k;
return invert(findKthBit(n - 1, k));
}
}
public char invert(char a) {
return (char) ('0' + '1' - a);
}
}
Complexity analysis
Time complexity :O(n). character string S_n The length of is 2^n-1, Each recursive call can reduce the search range by half , So the time complexity is zero O(log2n)=O(n).
Spatial complexity :O(n). The space complexity mainly depends on the stack space generated by recursive calls , The number of recursive call layers will not exceed n.
边栏推荐
- SQL快速入门
- Chapter III principles of MapReduce framework
- Hbuilder x format shortcut key settings
- How to insert mathematical formulas in CSDN blog
- Submit several problem records of spark application (sparklauncher with cluster deploy mode)
- QT simulates mouse events and realizes clicking, double clicking, moving and dragging
- 图像处理一百题(11-20)
- Educational Codeforces Round 130 (Rated for Div. 2)A~C
- 业务系统从Oracle迁移到openGauss数据库的简单记录
- useEffect,函数组件挂载和卸载时触发
猜你喜欢
Log statistics (double pointer)
Solve the problem of intel12 generation core CPU [small core full, large core onlookers] (win11)
使用jq实现全选 反选 和全不选-冯浩的博客
Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog
软通乐学-js求字符串中字符串当中那个字符出现的次数多 -冯浩的博客
Hbuilder X格式化快捷键设置
antd upload beforeUpload中禁止触发onchange
QT implementation window gradually disappears qpropertyanimation+ progress bar
Cmake Express
QT realizes window topping, topping state switching, and multi window topping priority relationship
随机推荐
Chapter 5 namenode and secondarynamenode
(lightoj - 1354) IP checking (Analog)
SQL快速入门
QT implementation fillet window
QT simulates mouse events and realizes clicking, double clicking, moving and dragging
sublime text 代码格式化操作
The concept of spark independent cluster worker and executor
Chapter 5 yarn resource scheduler
Local visualization tools are connected to redis of Alibaba cloud CentOS server
Click QT button to switch qlineedit focus (including code)
Research Report on market supply and demand and strategy of double drum magnetic separator industry in China
第6章 Rebalance详解
【锟斤拷】的故事:谈谈汉字编码和常用字符集
(lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
解决Intel12代酷睿CPU单线程调度问题(二)
Research Report of desktop clinical chemical analyzer industry - market status analysis and development prospect prediction
< li> dot style list style type
Native JS realizes the functions of all selection and inverse selection -- Feng Hao's blog
Date plus 1 day
QT realizes window topping, topping state switching, and multi window topping priority relationship