作者oin1104 (是oin的說)
看板Marginalman
標題Leetcode Weekly Contest 414
時間Sun Sep 8 13:01:33 2024
家人們
我這次3000名
徽章++
q1
把日期的字串 變成 二進位的字串
思路
照做
```cpp
class Solution {
public:
string convertDateToBinary(string date)
{
int a = stoi(date.substr(0,4));
int b = stoi(date.substr(5,2));
int c = stoi(date.substr(8,2));
string res ;
string tmp;
while(a>0)
{
tmp.push_back((a&1)+'0');
a>>=1;
}
for(int i = tmp.size()-1 ; i >= 0 ; i --)
{
res.push_back(tmp[i]);
}
tmp.clear();
res.push_back('-');
while(b>0)
{
tmp.push_back((b&1)+'0');
b>>=1;
}
for(int i = tmp.size()-1 ; i >= 0 ; i --)
{
res.push_back(tmp[i]);
}
tmp.clear();
res.push_back('-');
while(c>0)
{
tmp.push_back((c&1)+'0');
c>>=1;
}
for(int i = tmp.size()-1 ; i >= 0 ; i --)
{
res.push_back(tmp[i]);
}
tmp.clear();
return res;
}
};
```
q2
有一串數字的陣列還有一個數字d
d是他可以增加的範圍
對於陣列每個數字
在他可以增加的範圍裡
選一個數字當作差距
這個數字要和其他所有數字的差距選出最小的差距
請問有最大化最小差距 的 那個差距數字
是什麼
思路
這題目有點複雜
如果把數字sort
可以想像成你在上一個樓梯
每次都跨k個高度
跨在那些數字上面
跨不過沒關係
但是一定要在那個數字的範圍以下
然後最大的k要找的話
那個k就必須對每個數字來說
都可以在那個範圍以下
然後就用二分搜去試試看k的可能數字
然後
對ㄚ= =
幹你娘好難講
這題他媽的int會overflow
什麼傻逼設計 害我吃處罰
操你媽白癡出題原
```cpp
class Solution {
public:
vector<long long> paper;
int n ;
int pm ;
bool find(long long k)
{
long long p = paper[0];
for(int i = 1 ; i < n ; i ++)
{
p += k;
if(paper[i] + pm < p )return false;
p = max(p , paper[i]);
}
return true;
}
int maxPossibleScore(vector<int>& start, int d)
{
n = start.size();
pm = d;
sort(start.begin() , start.end() );
paper.resize(n);
for(int i =0 ; i < n ; i ++)
{
paper[i] = start[i];
}
long long l = 0;
long long r = start[n-1] + d;
while(l<=r)
{
long long m = (l+r)/2;
if(find(m))
{
l = m+1;
}
else
{
r = m-1;
}
}
int res = r;
return res;
}
};
```
q3
你要照順序走到終點
不可以回頭
你在i往j走時 可以加分
(i-j)*nums[i] 分
怎麼走最高分
思路
其實你換個角度想
你走到一個地方往回看
你要拿的數字一定是選最大的數字
因為最大的數字直接往你這格走
就會增加最多
然後再回頭看
幹我只要紀錄出現過的最大的不就好了
然後就對了
```cpp
class Solution {
public:
long long findMaximumScore(vector<int>& nums)
{
long long res = 0;
int n = nums.size();
int p = nums[0];
for(int i = 1 ; i < n ; i ++)
{
res += p;
p = max(nums[i],p);
}
return res;
}
};
```
q4
不會
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.22.67 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1725771695.A.32C.html
推 sustainer123: 我11000 幹 09/08 13:09
推 Furina: 我好崇拜你們 09/08 13:12
→ sixB: 你好厲害 09/08 13:12
推 wu10200512: 你好強 09/08 13:15
推 dont: 大師 09/08 13:30