Nick

亘古而常青的昨天永远是过去,也永远会再来。

pytorch实现cifar10分类

1.pytorch60分钟上手教程中的代码,网上的代码存在部分错误,在此进行了改正,并添加了必要注释。总的来说,pytorch无论在网络模型的定义还是在数据的预处理等方面都比使用tensorflow要方便,tensorflow代码的风格更偏向于细节,参数较多,底层函数也较容易更改。在调试代码方面,...

2018-01-18 20:16:44

阅读数:1046

评论数:0

16.合并两个排序的链表

1.思路: 双指针法,判断当前指针指向的两个数,将较小的数放入新链表中,选取的指针往后移位,直到到达NULL。需要注意的是,在对指针的使用时,若给的是两个相等的未赋值的野指针,则它们不是互相独立的,一个发生变化时另一个也会接着一起变,因此这里需要新建一个ListNode结点,先将两个指针指向结点...

2018-01-10 12:09:24

阅读数:76

评论数:0

15.反转链表

1.思路: 老方法,但一定要记住需要定义三个指针,head, pre, cur;并需要判断链表是否为空。2.代码:/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : ...

2018-01-10 11:18:22

阅读数:87

评论数:0

14.链表中倒数第k个结点

1.思路: 定义一个start和end指针,使其之间相差k个结点,令它们同时往后移动,当end到达链表末尾时,start所指即为链表中倒数第k个结点。需要注意的是要讨论链表是否存在倒数第k个结点,即链表长度是否大于k,若不存在,应及时停止并返回NULL。2.代码:struct ListNode ...

2018-01-10 10:42:45

阅读数:40

评论数:0

多光谱影像分类(双通道CNN实现)

1.介绍 2017年IEE IGRASS多光谱影像分类比赛,选用两个卫星landsat_8和sentinel_2所拍摄的多光谱图像作为输入,输出像素级分类图像。其中landsat_8有4个时段的影像数据,sentinel_2只有一个时段的影像数据。拍摄城市有巴黎/柏林/罗马/香港/圣保罗 五个地...

2018-01-08 18:20:38

阅读数:866

评论数:1

13.调整数组顺序使奇数位于偶数前面

1.思路: 遍历一次待排序数组,用int start记录已排序好的最后一个奇数的下标,当遍历到奇数时,使用类似于冒泡的方式,将奇数移动至下标start处,以保证偶数间的相对顺序不发生变化,然后++start。 2.代码: class Solution { public: vo...

2018-01-07 18:03:00

阅读数:45

评论数:0

12.数值的整数次方

1.思路: 采用二分法和分治的思想,将指数运算分解成两个指数运算的乘积,这里需要考虑指数的奇偶性;在计算时,还应考虑指数的正负性。 2.代码: class Solution { public: double Power(double base, int exponent) {...

2018-01-07 17:46:57

阅读数:49

评论数:0

11.二进制中1的个数

1.思路: 由于负数用的是补码表示,因此先判断n的正负性,正数则一位一位判断是否为1,负数则先用 n = -n - 1,将其转换为各个位取反后的正数,再算1出现的次数,最后用总位数32减去1出现的个数即可(注意此处不能直接统计0的个数,因为while循环会提前停止)。 2.代码: c...

2018-01-07 17:12:26

阅读数:69

评论数:0

10.矩形覆盖

1.思路: 可以理解为动态规划或递归,dp[0]=0, dp[1]=1, dp[2]=2, dp[i]=dp[i-1]+dp[i-2]; 2.代码: class Solution { public: int rectCover(int number) { if...

2018-01-07 16:39:41

阅读数:42

评论数:0

09.变态跳台阶

1.思路: 动态规划,需要注意的是,每次可以从第0层直接跨过n层到达,因此这里可以设定arr[0] = 1,再进行状态转移方程(叠加过程)。2.代码:class Solution { public: int arr[1000] = {0}; int jumpFloorII(int...

2018-01-02 21:31:59

阅读数:38

评论数:0

08.跳台阶

1.思路: 递归求解,若要节省函数间调用的堆栈空间,可以用全局变量 int型数组arr[]来记录结果,该方法即为动态规划。2.代码:class Solution { public: int jumpFloor(int number) { if(number == 0) r...

2018-01-02 21:18:07

阅读数:66

评论数:0

07.斐波那契数列

1.思路: 非递归和递归两种版本2.代码:class Solution { public: int Fibonacci(int n) { if(n == 0) return 0; if(n == 1 || n == 2) return 1; ...

2018-01-02 21:00:13

阅读数:35

评论数:0

06.旋转数组的最小数字

1.思路: 首先一看,一次遍历可以求得,时间复杂度为O(N),显然不是最佳答案,因此最佳答案时间复杂度为O(LOG(N)),所有得用二分法查找。由于该数组中存在重复数据,因此在查找时需要考虑(arr[left] == arr[mid])的情况,这时应该令left += 1,调整后再进行二分查找。...

2018-01-02 20:46:08

阅读数:51

评论数:0

05.用两个栈实现队列

1.思路: push()直接放入stack1中,用两次堆栈的先进后出实现先进先出(负负得正),pop出stack2的栈顶元素,关键点在于每次pop时,判断stack2是否为空,若是则将stack1中所有元素放入stack2中,再pop栈顶元素,若非空,则直接pop栈顶元素,即可实现队列的数据结构...

2018-01-02 19:33:17

阅读数:29

评论数:0

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