Redian新闻
>
大家说说怎么把tp里面的程序最小化,就是只show桌面?
avatar
大家说说怎么把tp里面的程序最小化,就是只show桌面?# PDA - 掌中宝
w*1
1
有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂
度O(1),使用交换,而且一次只能交换两个数.(华为)
分析:数组的特点是值和下标满足一定的关系,以此作为交换的终止条件。
但这个算法的时间复杂度如何证明是O(n)呢?
#include
int main()
{
int a[] = {10,6,9,5,2,8,4,7,1,3};
int len = sizeof(a) / sizeof(int);
int temp;
for(int i = 0; i < len; )
{
if ( a[i] != i + 1)//下标和值不满足对应关系
{
temp = a[a[i] - 1]; //不相等的话就把a[i]交换到与索引相应的位置
a[a[i] - 1] = a[i];
a[i] = temp;
}
else
i++; // 保存,以后此值不会再动了
}
for (int j = 0; j < len; j++)
cout<return 0;
}
avatar
a*8
2
我妈说给我带个Iphone4过来
可这样到美国能用吗?有谁知道?
比如说用在tmobile 能用prepaid的plan吗
avatar
a*x
3
找了老半天找不到。。。
avatar
w*1
4
排序怎么可能是o(n)呢? 怎么看都不像啊。
avatar
z*e
5
只要是解锁的就能用。
avatar
a*x
6
没人知道么?

【在 a********x 的大作中提到】
: 找了老半天找不到。。。
avatar
d*8
7
这个可以0(N)的,因为是1-n个数在n大数组里,

【在 w******1 的大作中提到】
: 有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂
: 度O(1),使用交换,而且一次只能交换两个数.(华为)
: 分析:数组的特点是值和下标满足一定的关系,以此作为交换的终止条件。
: 但这个算法的时间复杂度如何证明是O(n)呢?
: #include
: int main()
: {
: int a[] = {10,6,9,5,2,8,4,7,1,3};
: int len = sizeof(a) / sizeof(int);
: int temp;

avatar
z*3
8
肯定能用,可能会被强制加data plan
avatar
n*0
9
看说明书。
用手指从下面屏幕外黑框儿开始从下往上快速划,就缩成card,再往上扔出去,就关了
avatar
m*9
10
既然是1到n的值域, 又放在大小为n的数组里, 把数组重新写一遍就可以,不需要排序吧
avatar
n*0
11
我的问题是,怎么拉动youtube上的进度bar,一试,整个网页跟着走,我只想调进度而
已。
avatar
d*8
12
但是这个代码是错的,应该是交换直到 A[i] = i+1
void sort(int A[], int n)
{
for(int i=0;i{
while(A[i]!= i+1 )
swap(A[i], A[A[i]-1]);
}
}
虽然是For循环里嵌套while,但是
因为每个数至多被Swap2次,所以是0(N)

【在 d*******8 的大作中提到】
: 这个可以0(N)的,因为是1-n个数在n大数组里,
avatar
a*x
13
这个我知道,我不想关程序,就想show desktop,看wallpaper,想windows里那个显示
桌面。

【在 n*********0 的大作中提到】
: 看说明书。
: 用手指从下面屏幕外黑框儿开始从下往上快速划,就缩成card,再往上扔出去,就关了
: 。

avatar
w*1
14
我带入值

i = 0 的时候, 这几个就做了好几次啊。
temp = a[a[i] - 1];
a[a[i] - 1] = a[i];
a[i] = temp;
avatar
i*8
15
你要看wallpaper而不想关掉程序的话应该只有锁屏这一个办法。WEBOS的卡片设计就是
这样的,桌面用来显示卡片。虽然这个办法麻烦了一点,但也能达到你的要求。
avatar
d*8
16
题目要求你只用Swap操作吧,没有赋值,呵呵

【在 m******9 的大作中提到】
: 既然是1到n的值域, 又放在大小为n的数组里, 把数组重新写一遍就可以,不需要排序吧
avatar
c*n
17
没有, WEBOS其他很差, 几分钟WOW后, 就发现要啥没啥。
avatar
B*t
18
i每次增加1至少会排好一个数, i取值从0到n-1, 复杂度O(n)

【在 w******1 的大作中提到】
: 有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂
: 度O(1),使用交换,而且一次只能交换两个数.(华为)
: 分析:数组的特点是值和下标满足一定的关系,以此作为交换的终止条件。
: 但这个算法的时间复杂度如何证明是O(n)呢?
: #include
: int main()
: {
: int a[] = {10,6,9,5,2,8,4,7,1,3};
: int len = sizeof(a) / sizeof(int);
: int temp;

avatar
g*y
19
这个是对的
对1-n的in place O(n)是可以做到的,以前google有个面试题是停车场有1-N编号的N辆车乱序,1
个空位,要求sort好,跟这个题基本上是一样的。

【在 d*******8 的大作中提到】
: 但是这个代码是错的,应该是交换直到 A[i] = i+1
: void sort(int A[], int n)
: {
: for(int i=0;i: {
: while(A[i]!= i+1 )
: swap(A[i], A[A[i]-1]);
: }
: }
: 虽然是For循环里嵌套while,但是

avatar
d*8
20
赞小尾羊,我要烧香拜佛求狗狗问我我会的题目..

辆车乱序,1

【在 g*******y 的大作中提到】
: 这个是对的
: 对1-n的in place O(n)是可以做到的,以前google有个面试题是停车场有1-N编号的N辆车乱序,1
: 个空位,要求sort好,跟这个题基本上是一样的。

avatar
m*9
21
其实这个题另外一个写法就是,将从头到尾swap的过程, 做2次就可以了:
比如:
这个题目另外2个变形就是: 找missing和duplicate
avatar
r*o
22
这种sort是不是得要1-n全排满,且每个元素只有一个才行阿。

辆车乱序,1

【在 g*******y 的大作中提到】
: 这个是对的
: 对1-n的in place O(n)是可以做到的,以前google有个面试题是停车场有1-N编号的N辆车乱序,1
: 个空位,要求sort好,跟这个题基本上是一样的。

avatar
r*u
23
swap needs assign value, isn't it?

【在 d*******8 的大作中提到】
: 题目要求你只用Swap操作吧,没有赋值,呵呵
avatar
c*r
24
雷死了,这也叫题。。。。。。。。。
直接输出1到n。
avatar
w*1
25
这个题目另外2个变形就是: 找missing和duplicate
在哪个地方加入这个判断呢?
avatar
r*o
26
还是没搞明白为什么要做2次啊。

【在 m******9 的大作中提到】
: 其实这个题另外一个写法就是,将从头到尾swap的过程, 做2次就可以了:
: 比如:
: 这个题目另外2个变形就是: 找missing和duplicate

avatar
a*n
27
第一次把第一个数和下标为1的数交换,这样第一个数就对了,第二次把第二个数和下标为2的数交换,
排好第二个数,这样n次就能排好n个数吧~
PS: 你申请full time还是intern?~

【在 w******1 的大作中提到】
: 有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂
: 度O(1),使用交换,而且一次只能交换两个数.(华为)
: 分析:数组的特点是值和下标满足一定的关系,以此作为交换的终止条件。
: 但这个算法的时间复杂度如何证明是O(n)呢?
: #include
: int main()
: {
: int a[] = {10,6,9,5,2,8,4,7,1,3};
: int len = sizeof(a) / sizeof(int);
: int temp;

avatar
w*1
28
这个不是面试遇到的题,
是在网上看到的题目。

下标为2的数交换,

【在 a********n 的大作中提到】
: 第一次把第一个数和下标为1的数交换,这样第一个数就对了,第二次把第二个数和下标为2的数交换,
: 排好第二个数,这样n次就能排好n个数吧~
: PS: 你申请full time还是intern?~

avatar
r*o
29
请问,为什么这个从头到尾做2遍swap就可以了呢?

【在 m******9 的大作中提到】
: 其实这个题另外一个写法就是,将从头到尾swap的过程, 做2次就可以了:
: 比如:
: 这个题目另外2个变形就是: 找missing和duplicate

avatar
b*v
30
已经知道是1,2,...,n那么直接写入a[0]=1, a[1]=2, ..., a[n-1]=n不就行了吗?

【在 w******1 的大作中提到】
: 有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂
: 度O(1),使用交换,而且一次只能交换两个数.(华为)
: 分析:数组的特点是值和下标满足一定的关系,以此作为交换的终止条件。
: 但这个算法的时间复杂度如何证明是O(n)呢?
: #include
: int main()
: {
: int a[] = {10,6,9,5,2,8,4,7,1,3};
: int len = sizeof(a) / sizeof(int);
: int temp;

avatar
d*e
31
不明为什么swap两次?
就lz的例子 10,6,9,5,2,8,4,7,1,3
i = 0时,while就不止两次

【在 d*******8 的大作中提到】
: 但是这个代码是错的,应该是交换直到 A[i] = i+1
: void sort(int A[], int n)
: {
: for(int i=0;i: {
: while(A[i]!= i+1 )
: swap(A[i], A[A[i]-1]);
: }
: }
: 虽然是For循环里嵌套while,但是

avatar
r*o
32
请问这两个找missing和duplicate的变形具体是怎么回事,多谢。

【在 m******9 的大作中提到】
: 其实这个题另外一个写法就是,将从头到尾swap的过程, 做2次就可以了:
: 比如:
: 这个题目另外2个变形就是: 找missing和duplicate

avatar
z*h
33
For missing和duplicate,just calculate the sum

【在 r****o 的大作中提到】
: 请问这两个找missing和duplicate的变形具体是怎么回事,多谢。
avatar
k*e
34
you may have satellite data

【在 b******v 的大作中提到】
: 已经知道是1,2,...,n那么直接写入a[0]=1, a[1]=2, ..., a[n-1]=n不就行了吗?
avatar
r*o
35
what is satellite data?

【在 k***e 的大作中提到】
: you may have satellite data
avatar
s*f
36
重写一遍需要O(N)的space,这里规定了只能用交换

既然是1到n的值域, 又放在大小为n的数组里, 把数组重新写一遍就可以,不需要排序吧

【在 m******9 的大作中提到】
: 既然是1到n的值域, 又放在大小为n的数组里, 把数组重新写一遍就可以,不需要排序吧
avatar
s*9
37
赞!

【在 c**********r 的大作中提到】
: 雷死了,这也叫题。。。。。。。。。
: 直接输出1到n。

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