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

推荐订阅源

A
About on SuperTechFans
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
宝玉的分享
宝玉的分享
美团技术团队
量子位
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
爱范儿
爱范儿
J
Java Code Geeks
博客园 - Franky
Last Week in AI
Last Week in AI
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
GbyAI
GbyAI
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog

博客园 - 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;

}