敲算法找实习
CS_ChenLI
Let's start coding!
展开
-
Python合并字典
代码如下,是基本的字典操作。__author__ = 'lichen'x = {'a': 1, 'b': 2, 'c': 3}y = {'a': 5, 'd': 3, 'b': 7}print xfor k,v in y.items(): if k in x.keys(): x[k]+=v else: x[k]=vprint原创 2015-06-17 11:25:57 · 843 阅读 · 0 评论 -
关于vector在堆上还是在栈上的思考与vector.push_back()究竟放入的是什么
vector如果不new是在栈上的,如下面的代码:class Solution {public: vector> generate(int numRows) { vector> result; for (int i=0; i<numRows; ++i) { vector temp(i+1,1); co原创 2016-05-14 22:23:41 · 31867 阅读 · 8 评论 -
原码,反码,补码及相关应用
首先介绍一下三者的概念,如下所示:1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]原创 2016-05-15 15:17:40 · 606 阅读 · 0 评论 -
Floyd判圈算法
理解的比较好的两个分析:(1)判圈后怎样计算圈的长度:http://blog.csdn.net/javasus/article/details/50015687(2)怎样找到圈的起点:http://blog.csdn.net/thestoryofsnow/article/details/6822576——————判圈的题目:1. https://leetcode原创 2016-05-05 15:03:14 · 510 阅读 · 0 评论 -
XCODE如何像VS(visual studio)一样设置监视变量
方法1:方法2:当执行到某断点时,在GDB窗口中使用po就可以查看变量.(po = print object) 1)查看String 或其它变量。po 变量名2)查看某个Property。比如要查看item变量的name属性。po [item name] 注意,po item.name是不工作的。3)查看数组po [myArray ob原创 2016-05-06 08:20:11 · 4938 阅读 · 0 评论 -
筛法求素数
筛法求素数:class Solution {public: int countPrimes(int n) { bool* isPrime=new bool[n]; int m=floor(sqrt(n+0.5)); vector primes; memset(isPrime, 0, sizeof(bool)*n);原创 2016-05-09 15:49:13 · 459 阅读 · 0 评论 -
map与unordered_map的区别与联系
unordered_map是很早就知道的概念,但却一直没有认真去理解,单单以为它是Boost库里对map的实现,今天在做Leetcode的题目的时候,发现了使用它的优越性,索性翻开书,并查一查资料,把它大致搞个清楚,省的以后还要再查再找,浪费时间。unordered_map是C++ Boost库中的内容,这里的unordered翻译成“无序”。但它并不是完全的“无序”的概念原创 2016-06-09 14:26:18 · 4135 阅读 · 0 评论 -
C++实现Java的split()函数
众所周知,java对于string的split函数非常好用,但是C++标准库函数中并没有对于此函数的用法,以下是三种手动实现split()的方法:共有三种方法:1. 第一种(废话),最快的一种方法,不额外遍历string来产生一个函数,直接边遍历,边分割,边做题。2. 第二种愚笨的手写方法:vector split(string str){ in原创 2016-06-19 22:24:05 · 1290 阅读 · 1 评论 -
C++ string erase //适用于所有C++ 容器
erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position);(3)iterator erase ( iterator first, iterator last);也就是说有三种用法:(1)erase(pos,n); 删除从原创 2016-06-21 21:08:09 · 565 阅读 · 0 评论 -
leetcode 290有感—永远不要比较无符号数与有符号数
题目链接:https://leetcode.com/problems/word-pattern/一开始wrong answer的做法:class Solution {public: bool wordPattern(string pattern, string str) { unordered_map a; unordered_ma原创 2016-06-22 10:53:52 · 608 阅读 · 0 评论 -
leetcode 374—注意溢出,二分左边界,右边界
题目链接:https://leetcode.com/problems/guess-number-higher-or-lower/正解:// Forward declaration of guess API.// @param num, your guess// @return -1 if my number is lower, 1 if my number is hig原创 2016-08-03 20:05:23 · 551 阅读 · 0 评论 -
Leetcode 293有感,有unsigned int一定要显示转换!
同样,不要将无符号数与有符号数进行比较!https://leetcode.com/submissions/detail/74053490/Leetcode 293有感,题目链接:https://leetcode.com/problems/flip-game/错误的做法:class Solution {public: vector generatePossi原创 2016-09-13 07:08:55 · 602 阅读 · 0 评论 -
理解个KMP怎么这么难= =#
理解过程中的参考网站:1. http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html2. http://blog.csdn.net/v_july_v/article/details/70418273. http://www.ituring.com.cn/artic原创 2016-09-26 06:33:51 · 1721 阅读 · 0 评论 -
C/C++ 堆与栈的区别
堆和栈的区别: 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 二、堆栈缓存方式区别: 1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕原创 2016-05-14 09:42:10 · 736 阅读 · 0 评论 -
leetcode 169---Majority Element
题目链接:https://leetcode.com/problems/majority-element/简单的利用hashtable的做法:class Solution {public: int majorityElement(vector& nums) { map find; for (int i=0; i<nums.size(); ++i) {原创 2016-05-03 15:54:36 · 298 阅读 · 0 评论 -
Leetcode—Contains Duplicate II—Python
class Solution: # @param {integer[]} nums # @param {integer} k # @return {boolean} def containsNearbyDuplicate(self, nums, k): numsDict=dict() for i in range(len(nums))原创 2015-06-17 20:07:53 · 1040 阅读 · 0 评论 -
LeetCode—Remove Linked List Elements—C++
切了好久的一道题目/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:原创 2015-06-17 21:45:10 · 674 阅读 · 1 评论 -
Leetcode—Contains Duplicate—Python的三种写法
方法一:class Solution: # @param {integer[]} nums # @return {boolean} def containsDuplicate(self, nums): nums.sort() for x in range(len(nums)-1): if(nums[x]==nums原创 2015-06-17 20:01:58 · 2699 阅读 · 0 评论 -
Sort与Sorted的区别与联系
# coding=utf-8__author__ = 'lichen'# sorted可以用于任何对象,并且不会改变原来的东东x = {'apple': 1, 'banana': 12}y = {'banana': 10, 'pear': 11}for hehe, heihei in y.items(): if hehe in x.keys(): x[heh原创 2015-06-17 20:37:30 · 781 阅读 · 0 评论 -
LeetCode—Reverse Linked List—C++
C++/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNod原创 2015-06-17 21:24:20 · 607 阅读 · 0 评论 -
leetcode 326---Power of Three,区分floor与rint
rint (2.3) = 2.0rint (3.8) = 4.0rint (-2.3) = -2.0rint (-3.8) = -4.0floor of 2.3 is 2.0floor of 3.8 is 3.0floor of -2.3 is -3.0floor of -3.8 is -4.0floor与rint的区别如上。解题思路:1. cla原创 2016-05-12 15:05:01 · 450 阅读 · 0 评论 -
leetcode 1-Two Sum
题目链接:两种思路:思路一:1. 排序2. 从两边同时开始找满足target的两个数。《代码改天写》思路二:1. 利用Map查找元素的时间为O(1)的特性来搞网上普遍的做法,击败了27%的C++ submission:class Solution {public: vector twoSum(vector &nums, int target)原创 2016-05-02 10:50:18 · 312 阅读 · 0 评论 -
leetcode 258---Add Digits, 关于C++中负数取余
一切源于leetcode 258---Add Digits这道题,https://leetcode.com/problems/add-digits/题目的解法很简单,有两种公式,一种是我这种笨笨的人写的:class Solution {public: int addDigits(int num) { if(num==0) return 0;原创 2016-05-02 11:23:48 · 740 阅读 · 1 评论 -
leetcode 283---Move Zeroes&&对vector erase()和remove用法的感悟
题目:https://leetcode.com/problems/move-zeroes/题目很简单,代码如下:class Solution {public: void moveZeroes(vector& nums) { int counts=0; for (vector::iterator i=nums.begin(); i!=nums.end原创 2016-05-02 21:55:48 · 593 阅读 · 0 评论 -
C++杂七杂八小知识
1. memset只能将数组全部赋值为0或-1int a[size];memset(a,0/-1,sizeof(a)); 2.原创 2016-05-03 14:15:51 · 396 阅读 · 0 评论 -
leecode 242---Valid Anagram
解法一:class Solution {public: bool isAnagram(string s, string t) { sort(s.begin(),s.end()); sort(t.begin(),t.end()); return s==t; }};解法二:非常巧妙的一种解法,避免了定义两个coun原创 2016-05-03 14:25:18 · 435 阅读 · 0 评论 -
leetcode 168---Excel Sheet Column Title--- 为什么要--n?
首先这道题的链接:https://leetcode.com/problems/excel-sheet-column-title/一开始没有太大的思路的同学可以和我一样尝试着先写出,将一个10进制数按位输出为一个string:代码如下:int main(){ int n=10123; string result; while (n) { resul原创 2016-05-03 15:16:56 · 477 阅读 · 0 评论 -
Codeforces Round #387 (Div. 2)
这次比赛的感受:一个字,燃!许久没打CF了,比赛的时候一下子出了4道题,还是挺激动。。。尽管C题最后挂了TAT。以下是题解:—————————————————————————————————分割线——————————————————————————————第一题: Display Size (http://codeforces.com/contest/747/problem/A)原创 2016-12-19 12:58:19 · 972 阅读 · 0 评论