惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
GbyAI
GbyAI
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
P
Proofpoint News Feed
The Cloudflare Blog
H
Help Net Security
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
量子位
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
月光博客
月光博客

博客园 - Yunanw

应用SQLServer For XML 生成XML避免在C# 拼字符串 某些版本的IIS可能有SessionID混淆的Bug 小觑数据库(SqlServer)查询语句执行过程 C#中Finally的一个不太常见的用法 通过表达式树实现的ObjectMapper 实际一个多态(或弱类型)ConfigurationElementCollection 通过P/Invoke调用32位C++ DLL时,一定要将平台改为X86 在Windows2008 IIS7上部署.net 1.1 用Python 实现刷钻网上抢任务,并实现一个简单的限制使用时间的功能 Python几行代码打印出网卡的Mac地址 放大招,解决前同事签出TFS文件的问题 飞猪传书 Linq To xml 查询时需要注意的一点。 - Yunanw 自定义WinForm 下ListBox的行高 使用LogParser分析网站运行情况(比较简单) 重新装载VS的模板 咱也搞一个TransactionScope QQ斗地主记牌器(只支持角色版) - Yunanw - 博客园 实现支持会话的WebClient
坑爹的面试题
Yunanw · 2011-09-02 · via 博客园 - Yunanw

昨天有人在在首页发了一个号称是百度的面试题,题目如下:

    百度面试题(一):假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变。时空复杂度要求分别为:o(n)o(1)。 

 当晚在家研究了一个小时,无解。。 

o(n)o(1)。

且保证负数和正数间元素相对位置不变,这三个条件去掉哪个都很好实现。今天早上,楼主突然宣布,没有

“且保证负数和正数间元素相对位置不变 ”  这个条件,我晕死!

去掉第三个条件实现起来就非常简单了,代码如下:

void Main()
{
    
int[] arr=  {-1,1,-4,5,-2,9,8,2,-6};
    
int insertPos = 0;
    
    
while(arr[insertPos] < 0 ) insertPos++// 先找到第一个负数,如果以正数开头,测从第一位开始插入
    
    
int begPos = insertPos+1;
    
    
while(begPos < arr.Length)
    {
        
if (arr[begPos] < 0)
        {
            swap(arr,begPos,insertPos);
            insertPos
++;
        }
        begPos 
++;
    }
    
    arr.Dump();
}
void swap(int[] arr,int i,int j)
{
    
int temp = arr[i];
    arr[i] 
= arr[j];
    arr[j] 
= temp;

}