本文因为垃圾csdn标题字限制,标题写不好。本文想说一个算法,和我在CVTE的实习,我看到CVTE是一家什么公司。如果想要喷我的,可以留言,我不会理。如果想喷公司,可以在博客评论或发到我邮件lindexi_gd@163.com,我一般会理。

不使用数据结构反转栈

昨天有人问我一道题,我有一个栈,我不使用其他数据结构,不使用另一个栈,把这个栈里所有数据反转。

我一听就想说,脑残,这样会有这样的,如果可以使用另一个数组,就直接把数据弹出来,然后放进去,这样就好啦。

但是他说是笔试题,我就说什么渣公司。结果是CVTE。那么这道题还是厉害,因为需要用到递归,把递归的局部放数据,这道题出的好。因为是我们公司的。

我们用递归,用的方法是减治,因为递归就是下一次的函数做好了这一次前做好的事。

假如我有一个数据,需要使用递归,那么我就需使用完递归,输入下一个的时候,数据规模比上一次小,小多少都好,这样到最后一次就是处理很少的数据,或一个,这样就很好。

另一个就是函数处理了之前做的,然后我需要做本次的,这都是递归需要想的。

那么我们就开始想,我们有一个可以把栈反转的函数,这个函数不使用数据结构,那么我们需要递归使用,使用的时候输入比这一次少,这样就好。

开始我想的就是直接把一个局部变量存我们的栈的一个数据,递归,这样出栈完我们就使用局部压入,但是其实这样不对,因为我们这样就是让直接出栈完就压,没有变化。

那么我们想另一个方法,这个是我问了大神和我说,因为我是渣渣。

首先假如我们的数据是“12345”栈底从栈顶,我们从栈顶拿出放在我们的递归局部t,这时栈底到栈顶“1234”,我们函数可以反转栈,我们调用函数,反转,这时栈底到栈顶“4321”,我们用局部g拿栈顶,这时栈底到栈顶“432”,我们调用函数反转。栈底到栈顶“234”,我们把t压,“2345”反转,得到“5432”,把g压得到“54321”我们不使用数据结构反转栈。

这个方法一开始没有一个说是对的,其实这个方法是好的,因为我们使用我们的函数反转,下一次使用只有这一次的数据-1,也就是假如我们输入5个数据,第二次使用函数是输入4个,这样最后我们就有一个数据。

我们可以使用

        public static void RecursionReverse(Stack<Puke> stack)
        {
            if (stack.Count == 0)
            {
                return;
            }
            Puke t = stack.Pop();

            RecursionReverse(stack);

            if (stack.Count == 0)
            {
                stack.Push(t);
            }
            else
            {
                Puke g = stack.Pop();

                RecursionReverse(stack);

                stack.Push(t);

                RecursionReverse(stack);

                stack.Push(g);
            }
        }

我们开始是判断我们的栈是不空,如果是我们就返回,然后我们使用t把我们栈拿出一个,然后递归,这时判断是不是t是最后一个,这样就是t出就是没有,没有的话我们就是对一个反转,反转还是他,所以我们就把t放入。放入我们就不需要继续。如果t后还有,我们就用g拿出栈的一个,反转,然后把t压,反转,压入g,结束。

import java.util.Stack ;

public class HelloWorld{
    public static void main(String []args){
        Stack<Puke> stack=new Stack<Puke>();
        Puke puke=new Puke("1");
        stack.push(puke);

        puke=new Puke("2");

        stack.push(puke);

        puke=new Puke("3");

        stack.push(puke);

        puke=new Puke("4");

        stack.push(puke);

        puke=new Puke("5");

        stack.push(puke);

        recursionReverse(stack);

        String str="";

        while(!stack.empty()){

            str+=stack.pop().paimian;

        }

        System.out.println(str);

    }

    public static void recursionReverse(Stack<Puke> stack){
        if(stack.empty()){
            return;
        }

        Puke t=stack.pop();

        recursionReverse(stack);

        if(stack.empty()){
            stack.push(t);
        }
        else{
            Puke g=stack.pop();

            recursionReverse(stack);

            stack.push(t);

            recursionReverse(stack);

            stack.push(g);
        }
    }

    static class Puke{
        public Puke(String paimian){
            this.paimian=paimian;
        }
        public String paimian;

    }
}

我们在工程少点用,因为我用了100个Puke就算了10分钟

CVTE是什么公司

CVTE是一家很有争议的公司,我觉得cvte还好,本文总体是说好的。我会说我看到的,有些是好的,有些是差的

上个月很兴奋去公司实习,其实因为我投的公司不是太远就是比不过CVTE。

开始从网上找到都是差评,基本上就是公司压力大,加班时间多。开始有点不想去,不过很早就听过公司,还有我的小伙伴在里面,应该还是很好的。

刚进去公司开始的时候居然是培训,听到培训以为是学技术,感觉不喜欢,结果培训的内容是吃喝玩+我也不知道怎么,感觉很诡异但是感觉不错。

培训时讲的公司的有点多,这个让我觉得不太好,因为说道自由,这个在网上争议比较多,其实因为自由是很抽象的,我不觉得是。自由在公司老大觉得:可以自由上下班,可以随便说话,言论自由,工资不是主管定。听到言论自由我觉得这一点是不成立的,于是最后作死试了,好像还是可以言论自由。

吃的开始进去是请大家吃一顿大的,记得:红肉红酒。

服务员是我们的前辈,那时我就在想如果我正式入职,可以选择我参不参加公司活动,如果可以不参加,那么是自由

然后开始培训有如何吃东西,如何喝酒,各种酒,现实给我们吃,然后还去广州玩,去吃美食节,食堂近五星自助餐。

住的是差不多酒店,很好。开始的培训感觉没什么用,但是在现在觉得,有哪个公司蛋疼培训这些。

感觉公司不好的就是吹的还是有点多,人均华为这个我不说啦,反正没什么,有工资就好,不过销售小伙伴留下不多。

第二周就去部门,我见到了我小伙伴,开始要接公司的项目,一开始听到是考核项目,一下子就不想了,但是小伙伴告诉我,这是公司现实要用的,于是我就开始。

我接到项目是Nuget管理,很简单的,开始就在官方找,然后直接使用官方的,各种,但是官方骗我,好在把核心功能砍了,我就完成了。

完成了自己项目就去我另外小伙伴项目,因为我感觉那个项目很简单,客户端大概三天就做完,但是我不能做完我小伙伴就没得考核项目,所以只好帮他做传输层。

传输层我开始用了我的协议,但是想着这个是docs.supersocket.net,我一组的有师兄,他做后台,很厉害,我三天改协议,他都做了,还不打我。

公司部门小伙伴也很有时间,不是一天都在打码,有很多时间是在讨论,在学习。本来以为加班会很多,我们部门一直按规划,显得不会那么忙,一天在7点差不多就可以走一半的人,我觉得一天工作10个钟还是可以,互联网哪有95。

但是我们是工作到周六早上。

加班时间没有那么多,一般加班得到的代码也是很差,没多少公司代码是在加班写,因为加班写的一小时需要用十多小时去改。

公司很多讨论,一般中午有时间讲课,是里面的大神。

旅游也好多,一年三次。好奇cvte福利好,其实不是,cvte给工资只有13月,而腾讯那些给16,所以不要以为公司福利好,其实福利没有几万,工资少了3个月所以其实和别的公司差不多。

不要想着公司是不是差,其实自己有多少能力要知道,其实我是渣渣,能力还没有一年工作经验,不想去看面试题,所以应该是进不了垃圾tx,我想着可能进不了微软谷歌甲骨文bat我就去cvte,我觉得这公司还好,去了大公司可能去做螺丝钉,可能有快速发展,去哪里只要觉得现在好就好,不需要想太久。


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

不使用数据结构反转栈 递归 CVTE实习 CVTE是一家什么公司的更多相关文章

  1. hdu 1022:Train Problem I(数据结构,栈,递归,dfs)

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  2. C#=>递归反转栈

    原理,递归反转栈 using System; using System.Collections.Generic; using System.Linq; using System.Threading.T ...

  3. 基础数据结构 之 栈(python实现)

    栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...

  4. 学习javascript数据结构(一)——栈和队列

    前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...

  5. PHP数据结构:栈、队列、堆、固定数组

    数据结构:栈 队列: 堆: 固定尺寸的数组:

  6. python数据结构之栈与队列

    python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...

  7. Python数据结构之栈的实现

    一图胜千言,看图! 代码code: #coding:utf-8 #常见数据结构之栈的实现 class Stack(): #创建Stack类 def __init__(st,size): st.stac ...

  8. 数据结构之 栈 (Python 版)

    数据结构之 栈 (Python 版) -- 利用线性表实现栈 栈的特性: 后进先出 基于顺序表实现栈 class SStack(): ''' 基于顺序表 实现的 栈类 ''' def __init__ ...

  9. 由字符串反转(使用递归)引申出来一道Java面试题

    如何面试一个从事编程工作的开发人员既困难又乏味,幸好还有很多值得参考的指南,比如:<Joel Guerilla Guide to interviewing>,但最后雇佣与否,还得由你自己决 ...

随机推荐

  1. 201521123089 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  2. sublime text3 好用的插件!!!

    1.首先,你要保证sublime有Package Control,所以,如果没有,那么将Ctrl+`打开sublime控制台,将下列代码复制进去! import urllib.request,os; ...

  3. PowerBI开发 第四篇:DAX表达式

    DAX 表达式主要用于创建度量列(Measure),度量值是根据用户选择的Filter和公式,计算聚合值,DAX表达式基本上都是引用对应的函数,函数的执行有表级(Table-Level)上下文和行级( ...

  4. 支付宝支付php的demo或sdk报错 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

    最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错: Warning: openssl_sign() [function.openssl-sign]: Unknown signature ...

  5. Java I/O 从0到1 - 第Ⅰ滴血 File

    前言 File 类的介绍主要会依据<Java 编程思想>以及官网API .相信大家在日常工作中,肯定会遇到文件流的读取等操作,但是在搜索过程中,并没有找到一个介绍的很简洁明了的文章.因此, ...

  6. Saltstack批量编译部署nginx(多模块)

    最近一直在研究saltstack的同步文件和批量执行命令,随着架构的变大,批量部署的需求也变得明显起来了,我需要用一条命令就部署好nginx和tomcat,并且符合我所有的环境需求,可以直接投入生产环 ...

  7. 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介

    异常处理第一讲(SSH),筛选器异常,以及__asm的扩展 博客园IBinary原创  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 一丶__Asm的 ...

  8. 将Editplus添加到右键打开菜单

    因为自己一直用Editplus作为文本打开工具,新的电脑将压缩文件复制了过来,但是没有右键打开了. 第一打开注册表 在命令框中输入regedit 第二在注册表中输入选项 如下图所示在下拉菜单中新建Ed ...

  9. 记录一次无聊的(经历了Nodejs -> Shell -> C)的探索问题过程

    提出问题 在运行项目的服务器的git是1.8.3.1版本的时候,pm2 deploy 项目,服务器fetch不到最新的一次commit. 对于这个问题,在pm2的github也有issues讨论.然后 ...

  10. Android中Parcelable接口

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...