剑指offer-java实现.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
剑指offer-java实现

package offer;//输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。publicclassAddList {publicstaticvoid main(String[] args) {ListNode list1 = newListNode(1, null);ListNode list2 = newListNode(2, null);for (int i = 3; i 5; i += 2) {list1.next = newListNode(i, null);}for (int i = 4; i 5; i += 2) {list2.next = newListNode(i, null);}AddList a = newAddList();a.Merge(list1, list2);}// 非递归publicListNode Merge(ListNode list1, ListNode list2) {if (list1 == null) {return list2;}if (list2 == null) {return list1;}ListNode head = null;if (list1.value = list2.value) {head = list1;list1 = list1.next;} else {head = list2;list2 = list2.next;}ListNode now = head;while (list1 != null list2 != null) {if (list1.value = list2.value) {now.next = list1;now = now.next;list1 = list1.next;} else {now.next = list2;now = now.next;list2 = list2.next;}}if (list1 == null) {now.next = list2;}if (list2 == null) {now.next = list1;}return head;}// 非递归publicListNode Merge1(ListNode list1, ListNode list2) {if (list1 == null) {return list2;}if (list2 == null) {return list1;}if (list1.value = list2.value) {list1.next = Merge1(list1.next, list2);return list1;} else {list2.next = Merge1(list1, list2.next);return list2;}}}package offer;//在一个二维数组中,每一行都按照从左到右递增的顺序排序,//每一列都按照从上到下递增的顺序排序。//请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。publicclassArraySelectOne {publicboolean Find(int target, int [][] array) {int i = 0,j = array[0].length - 1;//从左下角开始比较(i最大,j最小)while(i = array.length - 1 j = 0){//如果相等if(array[i][j] == target){returntrue;}//如果比target大,则在本行内elseif(array[i][j] target){j--;continue;}//如果比target大,则在下一行else{i++;continue;}}returnfalse;}}package offer;//把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。//输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。//例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。//NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。publicclassChangeArrays {publicstaticvoid main(String[] args){ChangeArrays a = newChangeArrays();System.out.print(a.minNumberInRotateArray(newint[]{3,4,5,1,2}));}publicintminNumberInRotateArray(int [] array) {int left=0,rig

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档