不使用数据结构反转栈 递归 CVTE实习 CVTE是一家什么公司
本文因为垃圾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是一家什么公司的更多相关文章
- hdu 1022:Train Problem I(数据结构,栈,递归,dfs)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- C#=>递归反转栈
原理,递归反转栈 using System; using System.Collections.Generic; using System.Linq; using System.Threading.T ...
- 基础数据结构 之 栈(python实现)
栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...
- 学习javascript数据结构(一)——栈和队列
前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...
- PHP数据结构:栈、队列、堆、固定数组
数据结构:栈 队列: 堆: 固定尺寸的数组:
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- Python数据结构之栈的实现
一图胜千言,看图! 代码code: #coding:utf-8 #常见数据结构之栈的实现 class Stack(): #创建Stack类 def __init__(st,size): st.stac ...
- 数据结构之 栈 (Python 版)
数据结构之 栈 (Python 版) -- 利用线性表实现栈 栈的特性: 后进先出 基于顺序表实现栈 class SStack(): ''' 基于顺序表 实现的 栈类 ''' def __init__ ...
- 由字符串反转(使用递归)引申出来一道Java面试题
如何面试一个从事编程工作的开发人员既困难又乏味,幸好还有很多值得参考的指南,比如:<Joel Guerilla Guide to interviewing>,但最后雇佣与否,还得由你自己决 ...
随机推荐
- 201521123019《Java程序设计》第1周学习总结
一.本周章学习总结 1.了解了JDK和JRE的区别 2.学会用ALT+/快速写代码 3.成功安装JDK和Eclipse 4.初步了解JAVA的发展史 二.书面作业 1.为什么java程序可以跨平台运行 ...
- 201521123071 《JAVA程序设计》第十二周学习总结
第12周作业-多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件线程相关内容. 2. 书面作业 1. 字符流与文本文件:使用 PrintWriter(写),Buff ...
- 解决liblzo2.so缺失
系统:CentOS5.8 提示错误: error while loading shared libraries: liblzo2.so.2: cannot open shared object fil ...
- Eclipse rap 富客户端开发总结(9) : rap上传与下载
一 上传 上传即将文件上传到服务器上,在客户端需要写相应的脚本,服务器端需要注册相应的 handle 接受客户端的请求. 原理: Rap 的上传和下载是通过普通的 web 的方式进行上传和下载的 , ...
- 深入浅出数据结构C语言版(17)——希尔排序
在上一篇博文中我们提到:要令排序算法的时间复杂度低于O(n2),必须令算法执行"远距离的元素交换",使得平均每次交换减少不止1逆序数. 而希尔排序就是"简单地" ...
- JDBC第三篇--【事务、元数据、改造JDBC工具类】
这是我JDBC的第一篇 http://blog.csdn.net/hon_3y/article/details/53535798 这是我JDBC的第二篇 http://blog.csdn.net/ho ...
- linux加载与使用ko驱动
linux驱动和有两种形式: 1:编译到内核 2:编译为ko模块 这里记录下ko模块使用方法. 首先cd到/var/lib/(内核版本)/drivers/ 在这里面找到要装载的模块ko文件 modpr ...
- OpenShift中的持续交付
上一文中讲述了如何在AWS下搭建OpenShift集群.这篇文章将目光转向如何在OpenShift中实现CI/CD以及产品环境的部署. 持续交付 如果要打造一个持续交付的流水线,首先要考虑多环境的问题 ...
- String StringBuffer StringBuilder 之间的区别
StringBuffer与StringBuilder的区别: StringBuffer是jdk1.0版本出来的,线程安全,效率低 StringBuilder是jdk1.5版本出来的,线程不安全,效率高 ...
- KMP算法的来龙去脉
1. 引言 字符串匹配是极为常见的一种模式匹配.简单地说,就是判断主串TT中是否出现该模式串PP,即PP为TT的子串.特别地,定义主串为T[0-n−1]T[0-n−1],模式串为P[0-p−1]P[0 ...