
lintcode
tellsummer
这个作者很懒,什么都没留下…
展开
-
LintCode463.整数排序
给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。我用的是冒泡排序,比较简单。代码如下:public class Solution { /** * @param A an integer array * @return void */原创 2016-12-14 18:19:38 · 616 阅读 · 0 评论 -
LintCode547:两组数的交
返回两个数组的交样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].代码如下public int[] intersection(int[] nums1, int[] nums2) { // Write your code here HashSet<Integer> set1 = new HashSet<Integer>()原创 2016-12-20 20:58:26 · 336 阅读 · 0 评论 -
LintCode1:A+B问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以样例如果 a=1 并且 b=2,返回3代码如下 public int aplusb(int a, int b) { // write your code h原创 2016-12-20 20:53:21 · 847 阅读 · 0 评论 -
LintCode133:最长单词
在词典{ "dog", "google", "facebook", "internationalization", "blabla"}中, 最长的单词集合为 ["internationalization"]在词典{ "like", "love", "hate", "yes"}中,最长的单词集合为 ["like", "love", "hate"]代码如下Ar原创 2016-12-20 20:47:18 · 564 阅读 · 0 评论 -
LintCode547:两组数的交
nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].代码如下public int[] intersection(int[] nums1, int[] nums2) { // Write your code here HashSet<Integer> set1 = new HashSet<Integer>(); fo原创 2016-12-20 19:02:57 · 361 阅读 · 0 评论 -
LintCode373:奇偶分割数组
分割一个整数数组,使得奇数在前偶数在后。样例给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。代码如下 public void partitionArray(int[] nums) { // write your code here; int temp = 0; int len = nums.length; for(i原创 2016-12-22 20:26:15 · 445 阅读 · 0 评论 -
LintCode539:移动的零
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序 注意事项1.必须在原数组上操作2.最小化操作数样例给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums = [1, 3, 12, 0, 0].第一次尝试代码如下public void moveZeroes(int[] nums) { // Write your co原创 2016-12-22 17:50:26 · 652 阅读 · 0 评论 -
LintCode46主元素
给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例给出数组[1,1,1,1,2,2,2],返回 1代码如下public int majorityNumber(ArrayList<Integer> nums) { // write your code int max=0; int len = nums.size();原创 2016-12-22 16:01:03 · 288 阅读 · 0 评论 -
LintCode397:最长上升连续子数列
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)样例给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4.给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4], 返回 4.代原创 2016-12-22 14:46:17 · 583 阅读 · 0 评论 -
LintCode422:最后一个单词的长度
给定一个字符串, 包含大小写字母、空格' ',请返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。样例给定 s = "Hello World",返回 5。代码如下 public int lengthOfLastWord(String s) { // Write your code here String[] arr = s.split(" ");原创 2016-12-22 14:11:07 · 423 阅读 · 0 评论 -
LintCode80:中位数
给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 5代码如下public int median(int[] nums) { // write your code here Arrays.sort(nums)原创 2016-12-22 11:18:38 · 951 阅读 · 1 评论 -
LintCode82:落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。给出 [1,2,2,1,3,4,3],返回 4代码如下public int singleNumber(int[] A) { // Write your code here Arrays.sort(A); int b=0,k=0; if(A.lengt原创 2016-12-21 19:08:23 · 333 阅读 · 0 评论 -
LintCode41:最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6代码如下:public int maxSubArray(int[] nums) { // write your code if (nums==null) return 0;原创 2016-12-21 18:39:32 · 341 阅读 · 0 评论 -
LintCode44:最小子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。给出数组[1, -1, -2, 1],返回 -3代码如下 public int minSubArray(ArrayList<Integer> nums) { // write your code if (nums==null) return 0; int len=nums原创 2016-12-21 17:25:21 · 503 阅读 · 0 评论 -
lintcode55:比较两个字符串A和B,确定A中是否包含B中所有的字符。
*样例 给出 A = “ABCD” B = “ACD”,返回 true 给出 A = “ABCD” B = “AABC”, 返回 false 注意 在 A 中出现的 B 字符串里的字符不需要连续或者有序。*看到这个问题一开始没想太多就写了,最初代码如下: public boolean compareStrings(String A, String B) { // wr原创 2016-12-12 19:26:18 · 2913 阅读 · 1 评论 -
LintCode:569 各位相加
给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。样例给出 num = 38。相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。代码如下public class Solution { /** * @param num a non-negative integer * @return one d原创 2017-04-11 16:33:58 · 1349 阅读 · 0 评论