上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 41 下一页
摘要: 在pytorch当中,有两种方式可以实现交叉熵,而我们把softmax概率传入传入对数似然损失得到的损失函数叫做“交叉熵损失” 在pytorch当中有两种方法实现交叉熵损失: 实现方式1: criterion=nn.CrossEntropyLoss() loss=criterion(input,ta 阅读全文
posted @ 2021-07-03 13:05 Geeksongs 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 这道题一看其实可以使用最大堆的方式来完成。使用最大堆来解决本题的时间复杂度为:o(mn*log(k)),这样虽然很巧妙,但是由于还乘上了logk的缘故时间反而慢了。因此我们可以直接通过直接对这个二维数组lists进行遍历,这样就可以得到一个sorted的数组。因此使用sort这个函数,也就是快速排序 阅读全文
posted @ 2021-06-28 16:04 Geeksongs 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 方法一: 这个题目首先一看就有两个方法,一个是使用基于树的算法,也就是heap堆排序,经过一番奇巧淫技之后,时间复杂度是O(n*log k)。另一个就是使用数组的算法,可以选择的算法有选择排序O(n^2),快速排序O(nlogn),冒泡排序O(n^2)或者插入排序O(n^2)等等。那么本题目最快的方 阅读全文
posted @ 2021-04-20 16:59 Geeksongs 阅读(87) 评论(2) 推荐(0) 编辑
摘要: 这个题目有两种比较常用的方法,一种是暴力解法,时间复杂度是O(mn),一种是KMP算法,由于KMP算法一般都是ACM竞赛才会使用到,因此这里这里只提供Python的暴利解法。 题目如下: 使用Python暴利解答的代码如下: class Solution: def strStr(self, hays 阅读全文
posted @ 2021-04-20 16:10 Geeksongs 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 对于广度优先遍历而言,我们可以用迭代的方法轻松求解,但是对于递归,就很难了,也很难记忆 ,因此这里给出BFS的迭代解法,这个function会根据BFS的顺序依次打印出我们访问的节点,有点小trick,代码如下: def bfs_level_order_traversal(node): if nod 阅读全文
posted @ 2021-04-08 13:28 Geeksongs 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 这题目一看就会有两种思路,一种是简单的DFS深度优先遍历,时间复杂度为O(n),每遍历到一个节点就增加sum incremented by 1,另一种方法就是从the last node开始算起,从下往上进行递归(这样才能够运用到完全二叉树的性质),但是我这里为了速度做出题目就直接使用DFS就可以求 阅读全文
posted @ 2021-04-08 13:21 Geeksongs 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 这题一看实在是太简单了,只要判断我们当前指针所在的元素是否已经被访问过就好。因此有第一种方法: 方法一: 使用数组储存我们访问过的所有元素,然后遍历我们访问过的所有元素和当前指针所在的元素进行比较,如果有地址一样的,就返回True说明是环形链表,不然就返回False,说明不是环形链表。时间复杂度为O 阅读全文
posted @ 2021-04-08 13:07 Geeksongs 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 这个题告诉我在recusive的function里,你return任何value都是没啥用的,需要用数组才能够记录下来我们需要的值。这个题也很简单,最简单的就是使用倒叙进行inorder遍历就可以了,代码如下: # Definition for a binary tree node. # class 阅读全文
posted @ 2021-04-07 15:49 Geeksongs 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 这个题目是一个十分经典的题目,需要我们验证一个二叉搜索树是否是有效的。如果这是一个有效的二叉搜索树,那么一定需要满足这样的条件: 每一棵subtree的所有left subtree都比root要小,每一棵right subtree都要比root要大,因此我们可以写出这样的代码: # Definiti 阅读全文
posted @ 2021-04-07 14:46 Geeksongs 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 这题目乍一看就感觉特别简单,我首先想出了一个时间复杂度为O(n^2)的算法,也就是按照平常的方式进行中序遍历,每遇到一个node就在这个node后面继续往后进行中序遍历,得到其累加和。但是想了想完全可以从后往前进行中序遍历,这样只是多出了一个空间复杂度,需要多余的空间来储存sum变量,但是时间上就省 阅读全文
posted @ 2021-04-07 13:45 Geeksongs 阅读(24) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 41 下一页

Coded by Geeksongs on Linux

All rights reserved, no one is allowed to pirate or use the document for other purposes.