摘要: 题目描述: 我的分析:题目要求将奇数放在偶数的前面,没有要求将奇数或偶数排序,因此我可以设置两个指针,一个(i)指向数组第一个数字,另一个(j)指向数组的最后一个数字,因为奇数要放在前面,所以从后往前找奇数,从前往后找偶数,找到后将这两个数字进行交换,直到i == j。 我的代码: 阅读全文
posted @ 2017-10-28 19:35 zwt3 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我的代码: 阅读全文
posted @ 2017-10-27 20:50 zwt3 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我的代码: 总结:因为这是单链表,无法像双链表一样轻松的获得一个节点的前一个节点,所以,我就把这个单链表倒置,倒置后的单链表的第n个节点就是倒置前的单链表的倒数第n个节点,这样就能通过遍历获得倒数第n个节点了。 阅读全文
posted @ 2017-10-26 18:48 zwt3 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我的代码: 总结:因为链表是已经排好序的,所以相同的元素是在一起的。 阅读全文
posted @ 2017-10-26 13:51 zwt3 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我的代码: 总结:这道题我用了两个数组,其中数组a存放num的各位数字,然后将数组a从后至前赋值给数组c,此时数组a中的值得顺序与数组c中的值得顺序是相反的(例如:num=32,那么a=[3,2],c=[2,3]),如果该数是回文的话,那么这两个数组按相同的顺序从前往后读的值也应该是相同 阅读全文
posted @ 2017-10-26 08:41 zwt3 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 我的代码: 总结:该题是LintCode中的一道入门题,我的思路是采用递归的思想获得左子树和右子树,然后将根节点的值与左子树和右子树的根节点的值相比较,值最大的节点赋值给根节点,然后返回根节点。 阅读全文
posted @ 2017-10-26 08:31 zwt3 阅读(1252) 评论(1) 推荐(0) 编辑
摘要: 题目描述: 我的代码 总结:这道题是LintCode中的一道容易题,我用了一个栈的思想,把每次取得的num的各位数依次入栈,在依次出栈获得总和,把总和的值赋给num,当num为个位数时退出循环返回num。 阅读全文
posted @ 2017-10-25 21:01 zwt3 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我的代码 结论:删除链表中的元素这一道题是LintCode中的一道入门题,以前写算法题的时候用的都是C语言写的,C语言中有指针这个概念,利用指针理解链表的结构就比较容易,但是这次我用的是Java,刚开始写的时候一脸蒙,转不过弯来。我的思路是新建一个头节点h,再把这个节点赋值给p,然后循环遍 阅读全文
posted @ 2017-10-23 22:45 zwt3 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序: 冒泡算法是我学的第一种算法,也是很简单的一种算法。具体来说就是每次比较相邻的两个数,如果顺序错误就把他们交换过来。但是它的比较次数很多,时间复杂度为O(n2),这是一个非常高的时间复杂度,当需要比较的数字很多时,不推荐使用这种算法。 冒泡排序法需要使用两层for循环,第一层循环表示总共需 阅读全文
posted @ 2017-10-19 23:03 zwt3 阅读(215) 评论(0) 推荐(0) 编辑