基础差,一面刷,重基础,东山起

原创 2018年04月16日 14:29:53

给定一个已排序的单链表,去除单链表中的重复元素,只保留一个重复的元素,并且返回新的单链表。

例如: 
给出1->2>3->3->3->4,你的函数调用之后必须返回1->2->4。

#include <iostream>

using namespace std;


class Node{
        public:
        int value;
        Node* next;
        Node(int value_){value=value_;next=NULL;}
} ;

int main()
{
    Node*p= new Node[8]{1, 2 ,3 ,4, 5,5,5,6};
    for(int i=0 ; i<7 ;i++ )
    {
        (p+i)->next=(p+i+1);
    }
    (p+7)->next= NULL;
    for(Node*x=p; x!=NULL ;x=x->next )
    cout<<x->value<<endl;
    cout<<"***********************************************"<<endl;

    Node* last=p;
    Node* current=p->next;
    Node* next=current->next;
    while(current->next!=NULL)
    {
        if(current->value==next->value){
                while(current->value==next->value){
                        current=current->next;
                        next=next->next;
                }
                last->next=next;
        }
        else{
                last=last->next;
                current=current->next;
                next=next->next;
        }
    }
    for(Node*x=p; x!=NULL ;x=x->next )
    cout<<x->value<<endl;

    return 0;
}

总结,
1.现场使用的是用数组记录已知链表节点的值,每次遍历下一节点查一下数组中有没有重复,重点是漏看了已排序,就导致麻烦的思想。

2.其次一开始没定义链表结构,而且可笑的节点我居然起名为link,估计当时紧张脑子太热。

3做出了一道逻辑题后主动提出再看下编程题,后来用了双向链表,考官说题目没说双向链表,而且是考官问我写完了没,我就拿过去给他看,最后有一个指针还没来得及写就交卷我真的是佩服自己的脑残。

4.最后挽救似的提出用一下栈,比较top()和读取的链表节点值,相同就弹出,链表继续向下遍历,最后链表遍历结束时,弹出元素并重做一个链表。考官也是压根没理。

5最后考官让我学学php可能好找工作。我觉得我还是初心不变,基础差就是基础差,我多练练基本数据结构和代码,也就撑死10天就很熟悉了。我自我认为我的算法思想,还有基本理论知识还是比较有基础的,只是代码编的少,学校学习太注重理论了。


吐槽点!::我认为面试官没有看到我的亮点以及突破点,虽然面试官非常友善,但是一边自己工作,一边给我们面试还是让我内心很不舒服,而且居然一次两个人。(估计是他工作没做完,上来就给我题然后自己写自己的工作去了)后来看我用matlab和spss也是只说我们用不上这种工具,没有考虑过给我转推的可能,我有些失望。

教训点:基础是核心,多些基本的数据结构和算法,不要眼高手低,一定静下心来练习一些基本的。矩阵堆栈队列非常熟悉以后,二叉树搜索树,这些一个个过。之后再去熟悉五大算法,实现每一个典型例题。业余可以继续看看深度学习和大数据处理相关的知识,并且我打算九月秋招前实现一下tcp,udp。尽管会有困难,不过我的博文有代码,而且我有网络方面的知识我相信我可以做出来。


ps最后这个算法在电脑上敲出来,也就十五分钟,所以可以说当时面试发挥真的很差劲了。

基础太差了。从水题开刷

先刷100道水题。然后再做算法题。begin2016.12.4
  • liuyixuan2001
  • liuyixuan2001
  • 2016-12-04 16:12:36
  • 119

无刷直流电机(BLDC)基础.pdf

  • 2014年05月09日 11:09
  • 582KB
  • 下载

误差理论与测量平差基础课件

  • 2010年02月25日 14:56
  • 6.65MB
  • 下载

作为一个新人,如何学习嵌入式(韦东山)

被问过太多次,特写这篇文章来回答一下。    在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。 C语言要学到什么程度呢?越熟当然越好,不...
  • u012810362
  • u012810362
  • 2014-06-17 13:19:14
  • 1873

(转)作为一个新人,怎样学习嵌入式Linux?(韦东山)

被问过太多次,特写这篇文章来回答一下。    在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。 C语言要学到什么程度呢?越熟当然越好,不...
  • helongfu
  • helongfu
  • 2015-04-09 23:42:22
  • 979

java基础-补

Java版本 在jdk1.5以后,改为JavaEE,JavaSE,JavaSE,现最新版为jdk1.8,即Java8。 编译:产生一个二进制文件,源文件对其无影响。 解释:没有中间文件的...
  • Mr_Cccc
  • Mr_Cccc
  • 2016-10-24 22:35:43
  • 134

阿里一面被刷经历

今天去参加了阿里的数据挖掘工程师面试,很遗憾,一面被刷了,在此总结一下得失。 首先,一面的面试官很nice,聊得挺好的。 面的数据挖掘岗位,没有问编程语言的问题,主要是问了我做的两个项目,一个ha...
  • demon7639
  • demon7639
  • 2015-05-05 14:46:09
  • 1298

继续java基础刷题

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有goto ja...
  • zhangweigangweiwu
  • zhangweigangweiwu
  • 2015-11-18 11:31:31
  • 926

测量平差理论与平差基础考试题

  • 2011年06月14日 20:10
  • 44KB
  • 下载

java基础很差,开发android都一年多了,才了解一点回调

public interface OnRefreshAddress {/** * 删除地址刷新 */void DeleteAddress(int id);/** * 点击地址 */void Compi...
  • ABC546201056
  • ABC546201056
  • 2014-01-17 15:42:05
  • 620
收藏助手
不良信息举报
您举报文章:基础差,一面刷,重基础,东山起
举报原因:
原因补充:

(最多只允许输入30个字)