算法(algorithm)
KodeWang
赠人玫瑰,手有余香
博客撰写已经迁移到: www.wangxingyin.cn 如果想要查看其它,请移步
展开
-
输入一个链表,反转链表后,输出链表的所有元素。
思想 :在遍历节点时将节点翻转, 需要借助于两个节点 pre 和 curr 这两个节点。pre 节点表示当前已经反转节点的头结点,curr节点表示当前已经翻转到哪一个节点。时间复杂度 O(N),因为只是遍历一次就可以搞定 空间复杂度O (1) 代码实现 public ListNode ReverseList(ListNode head) { if (head == null) re原创 2017-09-09 15:57:44 · 274 阅读 · 0 评论 -
LeetCode_19_Remove Nth Node From End of List
题目描述Given a linked list, remove the nth node from the end of list and return its head.示例 Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked lis原创 2017-10-26 16:03:32 · 196 阅读 · 0 评论 -
LeetCode_11_Container With Most Water
题目描述Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two原创 2017-10-26 14:26:57 · 282 阅读 · 0 评论 -
leetCode_15_3Sum
题目描述Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution set must not contain du原创 2017-10-26 10:42:57 · 165 阅读 · 0 评论 -
LeetCode_697_Degree of an Array
题目描述Given a non-empty array of non-negative integers nums, the degree of this array is defined as the maximum frequency of any one of its elements.Your task is to find the smallest possible length of a原创 2017-10-16 21:26:13 · 840 阅读 · 0 评论 -
分苹果
题目描述n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 1原创 2017-10-23 11:51:47 · 227 阅读 · 0 评论 -
LeetCode_24_Swap Nodes in Pairs
题目描述Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant space. You ma原创 2017-10-27 17:18:27 · 185 阅读 · 0 评论 -
数组中找到出现次数大于N/K的数
说明此题操作 Map 的时候,推荐使用 Entry 集合,尽量不要使用 map.get(), map.keySet() 等。import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map;/** * Created by Cser_W on 2017/10/19.原创 2017-10-19 16:50:38 · 373 阅读 · 0 评论 -
LeetCode_21_Merge Two Sorted Lists
题目描述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.代码实现(两种方式) 第一种:使用非递归的形式 主要思想就是:建立一个头结点,然后依次比较两个链表节点的原创 2017-10-27 09:10:09 · 160 阅读 · 0 评论 -
leetCode_637_AverageOfLevelsInBinaryTree
题目描述 Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array. /** * Definition for a binary tree node. * public class TreeNode { * int val;原创 2017-10-09 15:11:38 · 151 阅读 · 0 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
计算机组成原理中的与或非,算术移位,逻辑移位很重要啊 看不懂了,把数字化成二进制模拟一下。n & (~n + 1) 表示的是 n 的二进制最右边 1及其以后的值public int NumberOf1(int n) { int count = 0; while(n != 0){ int a = n & (~n + 1);原创 2017-09-09 20:42:45 · 365 阅读 · 0 评论 -
剑指offer__03__旋转数组的最小数字
题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 心得 小小题目大变化,边界测试少不得,处处留心得永生 代码 /** 特殊情况:011原创 2018-01-21 17:38:05 · 161 阅读 · 0 评论