摘要:
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 类似于桶排序的思路: 弊端:数组中的值不能过大,否则必须开辟很大的空间(或者得 阅读全文
posted @ 2019-07-24 12:08
浅滩浅
阅读(218)
评论(0)
推荐(0)
摘要:
题目描述 此题和最大乘积有着相似的解法:https://www.cnblogs.com/cstdio1/p/11041901.html class Solution { public: vector<int> GetLeastNumbers_Solution(vector<int> arr, int 阅读全文
posted @ 2019-07-24 11:56
浅滩浅
阅读(148)
评论(0)
推荐(0)
摘要:
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路:用到两个栈:一个栈1全部压,一个栈2压入一个元素后,之后压的元素只能比之前的小于或者等于,这样一来最小的就是在栈2的栈顶,出栈的时候只有当栈1的栈顶元素和栈2的栈顶元素相同时,此时 阅读全文
posted @ 2019-07-24 11:46
浅滩浅
阅读(121)
评论(0)
推荐(0)
摘要:
题目描述 输入一个链表,反转链表后,输出新链表的表头。 注意:这个链表有效值是从head开始而不是head->next开始的 下面的代码没有动指针只是改值了,不是很推荐,但是通过了测试,有时间再写动指针的方法吧 c++代码如下: /* struct ListNode { int val; struc 阅读全文
posted @ 2019-07-24 11:06
浅滩浅
阅读(131)
评论(0)
推荐(0)
摘要:
注意:这个链表的值是从hesd->next开始的 阅读全文
posted @ 2019-07-24 10:55
浅滩浅
阅读(184)
评论(0)
推荐(0)
摘要:
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 注意:head中也有值,不是从head->next开始才有值的。 此题比那个没有让你在原链表上进行逆序,只是让你返回一个逆序的值序列而已 c++代码如下: /** * struct ListNode { * int val; 阅读全文
posted @ 2019-07-24 10:45
浅滩浅
阅读(136)
评论(0)
推荐(0)
摘要:
本质是:等差数列求和公式 sn=n*(a1+an)/2;(本题中sn=n*(1+n)/2) 因为不能用到乘法,先展开进行变形sn=(n+n*n)/2 >sn=(n+n^2)/2; 除2可以用右移一位实现 乘法可以用pow实现 public class Solution { public int Su 阅读全文
posted @ 2019-07-24 10:17
浅滩浅
阅读(748)
评论(0)
推荐(0)
摘要:
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 这道题和2018b 阅读全文
posted @ 2019-07-24 09:30
浅滩浅
阅读(313)
评论(0)
推荐(0)