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

推荐订阅源

The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
W
WeLiveSecurity
N
News and Events Feed by Topic
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
GbyAI
GbyAI
C
Check Point Blog
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
O
OpenAI News
V
V2EX
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
C
Cisco Blogs
Security Latest
Security Latest
S
Security Affairs
V
Visual Studio Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
博客园_首页
U
Unit 42
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题
H
Hacker News: Front Page

博客园 - gyhanonline

Function Point in Vbscript Window API in QTP Simulate click event using widows API. Static Constructor A Go Set program A Go Set program About Inherit Code for Inter-process communicate Integrity Level Test for publish blog by word 2007 托管为什么安全 The usage of intellisense in Vs .net 2005 关于singlton的一些问题 我的面试(六) 我的面试(五) 我的面试(四)补充1 我的面试(四) 我的面试(三) 我的面试(二)
我的面试(七)
gyhanonline · 2007-11-02 · via 博客园 - gyhanonline

    昨天参加了公司推荐的onsite第二轮面试,考官出了一道题,没答出最优的方法。今天试了试感觉效率还是很重要的。笨方法和较优方法间的差距在10,000级有1s多到了100,000级竟然有81.296s这样大的差距。真是不敢想象。看来以后真的要多注意效率问题。
   不注意效率的笨方法对于系统来说真是毁灭!
   考题奉上:
两组有序数列,请计算他们不共有数据的个数,例如:
input1:1 1 2 2 3 3 5 6 6
input2:0 1 3 3 3 4
output:5(即0 2 4 5 6一共5个)
两种方法:
1

        static  public int GetSameUniqueNumberCount(List<int> sourceList1,List<int> sourceList2)
        
{
            
int i = 0
            
int j = 0;
            List
<int> resultList = new List<int>();
            
while (i < sourceList1.Count || j < sourceList2.Count)
            
{
                
if (i >= sourceList1.Count)
                
{
                    
if (!resultList.Contains(sourceList2[j])) resultList.Add(sourceList2[j]);
                    j
++;
                }

                
else if (j >= sourceList2.Count)
                
{
                    
if (!resultList.Contains(sourceList1[i])) resultList.Add(sourceList1[i]);
                    i
++;
                }

                
else if (sourceList1[i] < sourceList2[j])
                
{
                    
if (!resultList.Contains(sourceList1[i])) resultList.Add(sourceList1[i]);
                    i
++;
                }
                
                
else if (sourceList1[i] == sourceList2[j])
                
{
                        
while (i < sourceList1.Count - 1)
                        
{
                            
if (sourceList1[i] != sourceList1[++i]) break;
                        }

                        
while (j < sourceList2.Count - 1)
                        
{
                            
if (sourceList2[j] != sourceList2[++j]) break;
                        }

                        
if (i == sourceList1.Count - 1) i++;
                        
if (j == sourceList2.Count - 1) j++;
                }

                
else if (sourceList1[i] > sourceList2[j] )
                
{
                    
if (!resultList.Contains(sourceList2[j])) resultList.Add(sourceList2[j]);
                    j
++;
                }

            }

            
return resultList.Count;
        }

这个方法比较快
2.

        static public int GetSameUniqueNumberCount2(List<int> sourceList1, List<int> sourceList2)
        
{
            List
<int> resultList = new List<int>();
            
for (int i = 0; i < sourceList1.Count; i++)
            
{
                
if (!sourceList2.Contains(sourceList1[i]) &&!resultList.Contains(sourceList1[i]))
                
{
                    resultList.Add(sourceList1[i]);
                }

            }

            
for (int j = 0; j < sourceList2.Count; j++)
            
{
                
if (!sourceList1.Contains(sourceList2[j]) && !resultList.Contains(sourceList2[j]))
                
{
                    resultList.Add(sourceList2[j]);
                }

            }

            
return resultList.Count;
        }

这是最直白的方法,也是给系统带来毁灭的方法100,000级就已经有明显的用户体验下降的感觉了再高一级就肯定认为是死机啦

下边是所有的代码(包括100,000的测试用例)