自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 Runtime系列(Method Swizzzling)

如何为一个实例动态替换方法?#import "ViewController.h"#import @interface ViewController ()@end@implementation ViewController+(void)load { static dispatch_once_t onceToken; //必须只调用一次,如果调用偶数次,就会起不到交换的作

2017-03-24 22:04:20 341

原创 求任意一点是否在三角形内部

//Description: 求任意一点是否在三角形内部 #include <stdio.h>#include <math.h>struct point{ double x; double y;};double getArea(point A, point B, point C) { // 求面积 double a = sqrt((B.y-C.y)*(B.y

2017-03-20 21:27:34 640

原创 kMP用于字符串的查找

题目描述:有一个文本串S和一个模式串P,要查找P在S中的位置该怎么做?解法一:蛮力匹配。假设现在文本串S匹配到i位置,模式串匹配到j位置,如果S[i]!=P[j],匹配失败,则i要回溯,j也要被置为0。时间复杂度是O(mn);解法二:KMP,代码如下,关键是求next[]#include #include int next[100];int KmpSearch(char* s,

2017-03-20 14:15:46 402

原创 滴滴出行进制转换

[编程题] 进制转换给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)输入例子:7 2输出例子:111

2017-03-17 23:02:25 613

原创 网易2017内推笔试题(合唱团)

有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 ai(-50

2017-03-14 22:46:25 853

原创 2017网易内推编程题(网格问题)

二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述: 每组数组包含网格长宽W,H,用空格

2017-03-14 18:03:46 1306

原创 2017金山字符串编程题

给出n个字符串,对于每个n个排列p,按排列给出的顺序(p[0],p[1],……,p[n-1])依次连接这n个字符串都能得到一个长度为这些字符串长度之和的字符串。所以按照这个方法一共可以成 n! 个字符串。一个字符串的权值等于把这个字符串循环左移i次后得到的字符串仍和原字符串全等的数量,i的取值为[1,字符串长度]。求这些字符串最后生成的n!个字符串中权值为k的有多少个。 注:定义把一个串循环左移1

2017-03-14 13:26:46 727

原创 剑指Offer-11.数值的整数次方

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。同时不需要考虑大数问题。 自以为简单的解法:double Power(double base, int exponent){ double result = 1.0; for(int i = 1; i < exponent; ++i) result *=

2017-03-10 14:42:34 426

原创 LeetCode-连续子数组的最大和

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array[−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray[4,−1,2,1]has t

2017-03-10 14:41:36 3308

原创 剑指Offer-二进制中1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 1)可能引起死循环的解法:先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于从右边数起的第二位被移到最右边了,再判断最右边的数是不是1,用(n&1)判断。这样每一次移动一位,直到整个整数变成0为止。int NumberOf1(i

2017-03-10 13:26:39 359

原创 剑指Offer-9.斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 int Fibonacci(int n) { // 递归 if(n < 0) return 0; else if(n == 1 || n == 2) return 1; else if(n >2 && n <= 39) { re

2017-03-10 11:30:27 343

原创 剑指Offer-旋转数组的最小数字

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 注意:二分查找的条件是数组有序,而此题的是把有序数组做了一次旋转。 int minNumberInRotateA

2017-03-10 10:23:07 277

原创 剑指offer- hash排序

题目描述:我们想对公司所有员工(几万名)的年龄排序。要求时间复杂度O(n)。 分析:要排序的年龄在一个比较小的范围,假设最大的员工年龄是99。并且还可以用辅助内存。该方法用长度100的整数数组作为辅助空间换来了O(n)的时间效率。void SortAges(int ages[], int length){ if(ages == NULL || length <=0) ret

2017-03-09 20:39:26 236

原创 剑指Offer-用两个栈实现队列

题目:用两个栈实现一个队列。队列的声明如下,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析:此题意图是要求我们操作这两个“先进后出”的栈实现一个“先进先出”的队列。 “` stack stack1; stack stack2; void push(int node) { stack1.push(node); }int

2017-03-09 19:44:11 250

原创 剑指Offer-重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 二叉树节点的定义如下: struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL

2017-03-09 19:18:19 269

原创 剑指Offer-从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 链表结点定义如下: struct ListNode { int val; struct ListNode *next; }; 直观的想法就是从头到尾输出会比较简单,于是我们很自然地想到把链表中链接结点的指针反转过来,改变链表的方向,然后可以从头到尾输出了。但是该方法会改变原来链表的结

2017-03-09 17:24:42 214

原创 剑指Offer-替换空格

题目:请实现一个函数,把字符串中的每一个空格替换成“%20”。例如输入“We are happy”,则输出“we%20are%20happy”。解法一:时间复杂度为O(n^2) 最直观的做法:从头到尾扫描字符串,每一次碰到空格字符的时候做替换。由于是把1个字符替换成3个字符,我们必须每替换一个空格,就把后面所有的字符都后移两个字节。假设字符串的长度是n。对每个空格字符,需要移动后面O(n)个字符,

2017-03-09 17:00:17 243

原创 剑指offer-二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例子输入: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15输入整数:7输出:true分析:首先我们选取数组右上角的数字9,并且9是第4列最小的数字,9

2017-03-09 15:40:37 188

原创 leetcode之reorder-list

题目描述Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes’ values. For example, Given{1,2,3,4}, reorder it to{1,

2017-03-04 16:13:20 255

原创 leetcode之insertion-sort-list

题目描述Sort a linked list using insertion sort. 思路:新建一个链表,遍历原链表,将每个节点加入新链表正确的位置。class Solution {public: ListNode *insertionSortList(ListNode *head) { if(!head || !head ->next) {

2017-03-04 15:18:09 274

原创 leetcode之sort-list

题目描述 Sort a linked list in O(n log n) time using constant space complexity.因为题目要求复杂度为O(nlogn),故可以考虑归并排序的思想。 归并排序的一般步骤为: 1)将待排序数组(链表)取中点并一分为二; 2)递归地对左半部分进行归并排序; 3)递归地对右半部分进行归并排序; 4)将两个半部分进行合并(merg

2017-03-04 14:14:15 224

原创 使用cocoapods时常见的错误

错误一:当写在Podfile文件中的第三方框架,不能使用,找不到时,查看Pods文件夹,是否下载了所需的第三方框架,没有的话就pod update注意:无论是执行pod install 还是pod update都卡在了Analyzing dependencies不动。原因是在于当执行以上任意一个命令时候都会去升级CocoPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加

2017-03-02 14:43:32 457

ebridge.zip

写的一个Demo,有助于新手明白RN是什么,怎么用

2019-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除