OJ
菜鸟研究僧
学生
展开
-
九度OJ 1161
网上找不到源码,自己做时候换了好几种思路,开始不是内存超就是超时,最后将超时的版本简化修改,最终AC,而且所占内存很小~~废话不多说,贴代码如下:原创 2014-04-01 08:37:33 · 756 阅读 · 0 评论 -
leetcode Add Two Numbers 没什么好说的,考虑全面即可~
没什么好说的,只要考虑全面即可~~~/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solutio原创 2015-07-13 15:48:31 · 272 阅读 · 0 评论 -
leetcode Two Sum 不采用hash,一种取巧的暴力方法(不推荐)
主要的思想就是先找到数组中的最小的元素,然后将数组中的所有元素减去这个最小的元素min,从而将使得数组中不存在负数的情况(目标和要减去2*min)。那么在所有元素非负的情况下就可以将比目标和大的元素过滤掉。下一步,直接暴力搜索两个数和为目标即可解决。。不会超时~~~哈哈哈class Solution {public: vector twoSum(vector& nums, int原创 2015-07-13 15:41:16 · 454 阅读 · 0 评论 -
LeetCode OJ Contains Duplicate
主要思路:因为是要找一个数组中是否存在重复的数,所以需要对数组中出现的数字进行标示,程序分三步:1.一次遍历找到数组中最大的数m。2.声明一个m大小的bool数组f,f[i]==ture;表示数组中出现过i。3.遍历数组,如果一个值对应f中的值为true,则表示在之前已经出现过该值,得到结果。代码如下:bool containsDuplicate(vector& nums) {原创 2015-09-11 14:39:06 · 268 阅读 · 0 评论 -
Nim Game LeetCode
题目太长直接链接。https://leetcode.com/problems/nim-game/很经典的一个问题,想清楚即可,那就是谁先得到一个4的倍数,那么对方就会有必胜的策略。因此只要自己得到的不是4的倍数,就可以给对方创造一个4的倍数。想清楚了,代码就很简单了:bool canWinNim(int n) { return n%4!=0; }原创 2015-12-18 08:54:39 · 281 阅读 · 0 评论 -
Add Digits LeetCode
https://leetcode.com/submissions/detail/48321956/点击打开链接题目链接如上,这个题就是要把每一位上的数字加起来然后直到得到的数字是一个小于10的个位数为止,按照此思路代码如下:int addDigits(int num) { int sum; while(num>=10) {原创 2015-12-18 09:00:41 · 290 阅读 · 0 评论