leetcode-21-merge-two-sorted-lists

Description

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

Example:

1
2
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4

leetcode-19-remove-nth-node-from-end-of-list.md

Description

Given a linked list, remove the n-th node from the end of list and return its head.

Example:

1
2
3
Given linked list: 1->2->3->4->5, and n = 2.

After removing the second node from the end, the linked list becomes 1->2->3->5.

Note:

Given n will always be valid.

Follow up:

Could you do this in one pass?

leetcode-1-two-sum

Description

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

1
2
Input: 123
Output: 321

Example 2:

1
2
Input: -123
Output: -321

Example 3:

1
2
Input: 120
Output: 21

Note:

Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

leetcode-1-two-sum

Description

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactlyone solution, and you may not use the same element twice.

Example:

1
2
3
4
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

java面试

1、Spring Bean 的生命周期

  1. Spring 容器 从 XML 文件中读取 bean 的定义,并实例化 bean。

  2. Spring 根据 bean 的定义填充所有的属性。

  3. 如果 bean 实现了 BeanNameAware 接口, Spring 传递 bean 的 ID 到setBeanName 方法。

  4. 如果 Bean 实现了 BeanFactoryAware 接口, Spring 传递 beanfactory 给setBeanFactory 方法。

  5. 如果有任何与bean相关联的BeanPostProcessors , Spring 会 在postProcesserBeforeInitialization()方法内调用它们。

  6. 如果 bean 实现 IntializingBean 了,调用它的 afterPropertySet 方法,如果 bean

    声明了初始化方法,调用此初始化方法。

  7. 如 果 有BeanPostProcessors和bean关 联 , 这 些bean的postProcessAfterInitialization() 方法将被调用。

  8. 如果 bean 实现了 DisposableBean,它将调用 destroy()方法。

2、反射机制

Spring 是依赖反射机制的,

那到底什么是反射机制呢: 反射机制就是利用(dom4j=java 反射机制) userBean ub = Class.forName(com.bean.*)这里是 com 全路径 所以在 Spring 配置文件中 bean 的 id 属性和 class 属性中要写全路径。

3、HashSet底层实现

对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成,在HashSet中,元素都存到HashMap键值对的Key上面,而Value时有一个统一的值private static final Object PRESENT = new Object();。

4、TreeSet 底层源码有看过吗?

类似于HashMap和HashSet之间的关系,HashSet底层依赖于HashMap实现,TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素。但实际上,由于NavigableMap只是一个接口,因此底层依然是使用TreeMap来包含Set集合中的所有元素

5、重载和重写区别

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实 现的是运行时的多态性。 扩展;

重载(Overloading)

重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以

不相同。无法以返回型别作为重载函数的区分标准。

重写(Overriding)

父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其 父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在 Java 中,子类可继承父类 中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法, 而是想作一定的修改,这就需要采用方法的重写。 方法重写又称方法覆盖

(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则 新方法将覆盖原有的方法。 如需父类中原有的方法,可使用 super 关键字,该关键字引用了当前类的父类。

(3)子类函数的访问修饰权限不能少于父类的;

个人简历

联系方式

  • 手机:1820206*
  • Email:*@gmail.com
  • QQ:42417658*

个人信息

  • 黄汉杰/男/1991
  • 本科/广州大学计算机系
  • 工作年限:2年
  • 技术博客:http://auhanjie.github.io
  • Github:http://github.com/auhanjie
  • 期望职位:JAVA开发程序员
  • 期望薪资:税前月薪7k,特别喜欢的公司可例外
  • 期望城市:珠海,深圳,广州
  • 获奖证经历:2016-2017 全国大学英语四级考试514分/2016-2017 获得过校级一等奖学金,并被评为优秀大学生

教育背景

2015/09~2017/06,广州大学 计算机科学与技术专业,获得学士学位
2010/09~2013/06,广东科学技术职业学院 软体技术专业,大专毕业

工作经历

2016/09~2016/10 实习生 广州静远科技开发有限公司 从事FOXTABLE软体开发工作,开发能耗统计分析系统,认真完成项目中的每一项任务。

2013/07~2014/07 Java软件开发工程师 易达通网络科技公司 从事Linux环境下的Java软件软件开发工作,工作期间,认真完成项目中的每一项任务。

2013/02~2013/06 Java Web实习生 珠海联迪软体系统有限公司 从事Java web开发,认真完成项目中的每一项任务。实习期间,参与开发清远市信访前后端系统。

易达通网络科技公司( 2013年7月 ~ 2014年7月 )

黑龙江教育标引平台

该项目对书籍进行标引管理,提供标引信息可以获取书籍信息,而且可以通过pdf,equb,txt等自动识别标引进行标注,让教育后台管理人员更加易用的管理。

此系统整体采用MVC模式的Spring框架,持久层使用的是Mybatis实现,数据源利用的是SpringIoC注入;模型层严格按照JavaBean规范要求;用Spring进行流程的控制,并实现了shiro权限控制管理,采用Redis 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势(查找和操作的时间快)。数据库采用Mysql,适当建立索引机制,进行优化查询。而且采用MongoDB,它包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如,可以确定是否需要添加索引。

广州银联的代收付平台系统

在本项目中本人是高效的执行者角色。本人独立完成了整个项目的数据库索引优化工作,并参与开发与测试等环节中。作为核心程序员,我还完成了系统权限管理、报表查询设计的开发工作。

此系统整体采用MVC模式的Spring框架,持久层使用的是Spring的HibernateTemplate实现,数据源利用的是SpringIoC注入;模型层严格按照JavaBean规范要求;用Spring进行流程的控制,并实现了国际化,JSP用纯标签进行页面显示。为达到用户名唯一的目的用户注册采用Ajax技术进行后台校验。运用SpringIoC的注入对各层解耦,大大提高了程序的可扩展性,易于维护。本项目采用maven项目管理和构建自动化工具。数据库采用oracle11g开发设计。

通过拦截器实现了系统权限管理功能,提高安全性。同时通过拦截器记录请求信息,以便进行信息监控和信息统计;检查权限,比如监测请求进入之前是否登录,如果没有可以返回登录页面;监控性能,比如可以通过拦截器记录请求进入处理器的开始时间,在处理后再记录结束时间,由此可以统计该请求的处理时间。Hibernatre的优化,结合数据库,调整批处理的条数,比如batch-size参数是设定每次从数据库中取出的记录条数,一般设置为30,50,100,一般的说法是Oracle 数据库的JDBC驱动的默认值是15,当设置为30或50时,性能就明显提升,如果继续增长,超过100,则性能提升就不明显了。

SMS-短信收发平台系统

该系统主要功能是SMS是个集多种短讯业务管理功能于一体的多功能短讯服务运营平台,具有稳定可靠、模组化、开放性、灵活性等特点。Web SMS系统无需安装任何软体,即可轻松管理客户名单及发送短讯,既可加强与客户的联系,可减低市场推广及行政上的资源及成本,是最佳的通讯及宣传工具。2013年,我参与了SMS-短信收发平台系统的开发。

作为核心程序员之一,我不但完成了发送短信界面设计、权限控制和报表查询的开发工作,更提出了高效的查询下拉列表插件,通过个性化提升了操作员查询体验。

该项目对Hibernate进行优化,适当地建立索引,如果数据量很大就少用关联,或者适当地建分区。在适合的的时间点清除缓存,一般会有大量的数据保存在session的一级缓存中,如果缓存太大时就会拖累性能,所以在必要时使用session.Clear()或者session.Erict(Object)清除全部缓存或某个对象。通过优化一对多的映射关系,提高性能,通过设置inverse在多的一方优化查询操作。遇到高并发和大访问量的情况,一、减少http请求(比如Js合并,css合并,图片合并,虽然文件大了,但是减少请求)二、添加异步请求(比如不太重要的东西先不展示,用户需要的时候再放一些事件,jQuery等添加异步请求获取)三、启用游览器缓冲和文件压缩。四、CDN加速(把前端的文件,前端的资源全部放到cdn中,用户就近访问,从而提高访问速度,从一定意义也解决了流量不够用的问题)。

其他项目

easylink好易联支付平台系统
LBN易联通支付平台系统
SMC商户管理平台系统
能耗统计分析系统项⽬
清远市信访管理平台系统

技能清单

以下均为我熟练使用的技能

  • Web开发:JSP/PHP/HTML5
  • 系统框架:Mybatis/Hibernate/Struts2/StringMvc/String/Shiro/ThinkPHP
  • 前端框架:Bootstrap/Jquery
  • 数据库相关:MySQL/Oracle
  • 版本管理、文档和自动化部署工具:Svn/Git/Maven
  • 单元测试:Junit4

个⼈评价

谦虚、谨慎而富有挑战精神,希望您能给我一个展示自我的机会。

致谢

感谢您花时间阅读我的简历,期待能有机会和您共事。


7-53 两个有序序列的中位数 (25 分)

7-53 两个有序序列的中位数 (25 分)

已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,A**N−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。

输入格式:

输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。

输出格式:

在一行中输出两个输入序列的并集序列的中位数。

输入样例1:

1
2
3
5
1 3 5 7 9
2 3 4 5 6

输出样例1:

1
4

输入样例2:

1
2
3
6
-100 -10 1 1 1 1
-50 0 2 3 4 5

输出样例2:

1
1

7-52 两个有序链表序列的交集 (20 分)

7-52 两个有序链表序列的交集 (20 分)

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。

输入格式:

输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。

输出格式:

在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL

输入样例:

1
2
1 2 5 -1
2 4 5 8 10 -1

输出样例:

1
2 5

7-51 两个有序链表序列的合并 (20 分)

7-51 两个有序链表序列的合并 (20 分)

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。

输入格式:

输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。

输出格式:

在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL

输入样例:

1
2
1 3 5 -1
2 4 6 8 10 -1

输出样例:

1
1 2 3 4 5 6 8 10

7-50 畅通工程之局部最小花费问题 (35 分)

7-50 畅通工程之局部最小花费问题 (35 分)

某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。

输入格式:

输入的第一行给出村庄数目$N$ (1≤$N$≤100);随后的$N$($N$−1)/2行对应村庄间道路的成本及修建状态:每行给出4个正整数,分别是两个村庄的编号(从1编号到$N$),此两村庄间道路的成本,以及修建状态 — 1表示已建,0表示未建。

输出格式:

输出全省畅通需要的最低成本。

输入样例:

1
2
3
4
5
6
7
4
1 2 1 1
1 3 4 0
1 4 1 1
2 3 3 0
2 4 2 1
3 4 5 0

输出样例:

1
3
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×