avatar
phospho-PPARg抗体求助# Biology - 生物学
h*g
1
比如,“abcabcbb”最大的就是“abc”长度3
“bbbbb”最大就是“b”长度1
有O(N)的algo吗?
avatar
w*g
2
【 以下文字转载自 PDA 讨论区 】
发信人: nncjxhll (nncjxhll), 信区: PDA
标 题: iPhone8也要降速,只是没有之前机型明显
发信站: BBS 未名空间站 (Fri Dec 21 05:07:43 2018, 美东)
一开始苹果机型里面,降速最明显的是,iPhone6系列,因为是系统升级到了ios11,所
以就慢的不行了,6之前的5系列就不用说了,升级完了直接就是板砖了。
本来说的是,最新的机型,从iPhone8开始,是不会再故意用系统更新来降速的,可是
现在用着iPhone8的朋友说,升级到了ios12.1之后,也已经开始降速了,明显是不如之
前的,但是情况没有iPhone6系列那么明显和糟糕,不过可以感觉出来的是,不如一开
始那么流畅了,甚至还自动关机了几次。
不知道iPhone XS系列还有没有降速的情况了。
avatar
b*j
3
有人知道phospho-PPARg (Ser112)和PPARg (Ser273), 比较好用的抗体吗? 帮帮忙推
荐一个, 谢谢。
avatar
f*g
4
前后两个指针
类似那个最小覆盖算法
avatar
h*g
5
能展开说说或者给个链接吗?

【在 f***g 的大作中提到】
: 前后两个指针
: 类似那个最小覆盖算法

avatar
k*r
6
用hash table,比方定义 int hTable[256], 然后初始化, . 然后再读字符串, 第一
个字符a,那么 if(
int hTable[256];
hTable['a'] = 0, ..., hTable['z']=0;
char c;
int len = 0;
int maxLen = 0;
while(c=read(str))
{
if(hTable[c]==0)
{
hTable[c]++;
len++;
}
else
{
if(maxLen{
maxLen = len;
}
len=0;
hTable['a'] = 0, ..., hTable['z']=0;
hTable[c]++;
len++;
}
}
if(maxLen{
maxLen = len;
len=0;
}
没作调试,可能有BUG,时间度大概是O(N),就是个大概的意思,将就看吧。

【在 h*****g 的大作中提到】
: 比如,“abcabcbb”最大的就是“abc”长度3
: “bbbbb”最大就是“b”长度1
: 有O(N)的algo吗?

avatar
f*g
7
你的意思是,如果碰到了重复的字符,前面当前的结果全部舍弃不要?
有重叠怎么办?
两个指针:
前面的尽量往前scan,直到查表发现重复。
如果发现重复
后面的往前走直到去除掉那个要重复的字符。
每次前面的走一步都要update max

【在 k******r 的大作中提到】
: 用hash table,比方定义 int hTable[256], 然后初始化, . 然后再读字符串, 第一
: 个字符a,那么 if(
: int hTable[256];
: hTable['a'] = 0, ..., hTable['z']=0;
: char c;
: int len = 0;
: int maxLen = 0;
: while(c=read(str))
: {
: if(hTable[c]==0)

avatar
t*o
8
L(i)表示以第i个字符结尾的无重复字符子串的长度
1)若第i个字符出现过
d表示最近一次出现重复字符的位置,hashmap(第i个字符)表示上一次第i个字符出现的
位置
if d>hashmap(第i个字符) L(i)=L(d)+i-d
else L(i)=i-hashmap(第i个字符)
更新 d=i,hashmap(第i个字符)=i
2)否则L(i)=L(i-1)+1
返回最大的L(i)
avatar
l*e
9
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
string a;
cin >> a;
int index = 0;
int longest = -1;
int curr = 0;
map m;

int len = a.length();
const char* cs = a.c_str();
for (int i=0; iconst char c = cs[i];
if (m.find(c) == m.end() || m[c] < index ) {
curr++;
m[c] = i;
} else {
if (curr > longest)
longest = curr;
curr = i - m[c];
index = m[c]+1;
m[c] = i;
}
}
if (curr > longest)
longest = curr;
cout << longest << endl;

return 0;
}
xiexie!
avatar
l*s
10
agelee

【在 f***g 的大作中提到】
: 前后两个指针
: 类似那个最小覆盖算法

avatar
k*r
11
碰到了重复的字符, 保留当前不重复字符串的最大长度,然后回到初始状态,重新计
算。并不是“前面当前的结果全部舍弃不要”。 你的两个指针的做法跟我的相似。如
果我没有理解错,你的“每次前面的走一步”,不仅要update max,还要update 表。

【在 f***g 的大作中提到】
: 你的意思是,如果碰到了重复的字符,前面当前的结果全部舍弃不要?
: 有重叠怎么办?
: 两个指针:
: 前面的尽量往前scan,直到查表发现重复。
: 如果发现重复
: 后面的往前走直到去除掉那个要重复的字符。
: 每次前面的走一步都要update max

avatar
j*y
12

我也感觉用map是个不错的选择,不过下面的代码有些不明白:
---
} else {
if (curr > longest)
longest = curr;
curr = i - m[c];
index = m[c]+1;
m[c] = i;
---
可以加点注释或者说明吗?谢谢。

【在 l*******e 的大作中提到】
: #include
: #include
: using namespace std;
: int main(int argc, char *argv[])
: {
: string a;
: cin >> a;
: int index = 0;
: int longest = -1;
: int curr = 0;

avatar
j*y
13

老大,能不能给段代码的例子?手生得紧,光看idea还是无法写出代码。

【在 f***g 的大作中提到】
: 你的意思是,如果碰到了重复的字符,前面当前的结果全部舍弃不要?
: 有重叠怎么办?
: 两个指针:
: 前面的尽量往前scan,直到查表发现重复。
: 如果发现重复
: 后面的往前走直到去除掉那个要重复的字符。
: 每次前面的走一步都要update max

avatar
g*s
14
这题跟最大直方图是一个思路。
同理,用类似“发个湾区P公司的第一轮phone interview”第二题的方法也可解。

【在 k******r 的大作中提到】
: 碰到了重复的字符, 保留当前不重复字符串的最大长度,然后回到初始状态,重新计
: 算。并不是“前面当前的结果全部舍弃不要”。 你的两个指针的做法跟我的相似。如
: 果我没有理解错,你的“每次前面的走一步”,不仅要update max,还要update 表。

avatar
s*y
15
Your algorithm is so niu.

【在 g***s 的大作中提到】
: 这题跟最大直方图是一个思路。
: 同理,用类似“发个湾区P公司的第一轮phone interview”第二题的方法也可解。

avatar
j*y
16

为什么要去掉那个重复的字符呢?计数的时候把这个字符计为1不就好了吗?
可不可以用个最简单的方法:用一个map储存输入string中每个character
出现的次数,然后把map.end()-map.begin()不就是distinct character的数量了吗?
是不是我什么地方理解错了?

【在 f***g 的大作中提到】
: 你的意思是,如果碰到了重复的字符,前面当前的结果全部舍弃不要?
: 有重叠怎么办?
: 两个指针:
: 前面的尽量往前scan,直到查表发现重复。
: 如果发现重复
: 后面的往前走直到去除掉那个要重复的字符。
: 每次前面的走一步都要update max

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。