import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
两个函数都返回相同的列表.那么两个不同功能执行相同工作的需求是什么.
考虑一个数组 A = [5,1,7,2,3]
所有连续子数组 = { [5], [1], [7], [2], [3], [5,1], [1,7], [7,2], [2,3], [ 5,1,7], [1,7,2], [7,2,3], [5,1,7,2], [1,7,2,3], [5,1,7, 2,3]}
将上面集合中的所有数组替换为其中最大元素:
设置将如下所示: { [5], [1], [7], [2], [3], [5], [7], [7], [3], [7], [7] , [7], [7], [7], [7] }
频率信息:[5] -> 2、[1] -> 1、[7] -> 9、[2] -> 1、[3] -> 2
我的目标是找到上述频率信息。
我的方法:
首先列出 (x,y) 对。x是A中的元素,它的索引是y。
列表:[(5,1)、(1,2)、(7,3)、(2,4)、(3,5)]
相对于第一个元素按降序对列表进行排序。现在,
列表:[(7,3)、(5,1)、(3,5)、(2,4)、(1,2)]
算法:
def f( array, first_index, last_index):
->select an element from LIST starting from left which
is not …Run Code Online (Sandbox Code Playgroud) 我有一个有n 个节点的连通无向图。给定两个节点,我想找到必须删除的最小边数,以确保这两个节点之间只有一条无循环路径。
例如,如果这是图表:
1------------2------------5
| |
| |
3-------------------------4
Run Code Online (Sandbox Code Playgroud)
那么给定节点1和5,答案将是1:只需删除(例如)节点 3 和节点 4 之间的边。
暴力方法是,对于边集的每个子集,尝试删除这些边并测试两个感兴趣的节点之间是否存在唯一的无循环路径。
有更有效的方法吗?(我用谷歌搜索过,但没有找到任何相关内容。)
(亲爱的 cryptomanic,我添加这些示例是为了帮助讨论确切的要求;请编辑此部分并指出这些解决方案中哪些是有效的。m69)
输入图:(从X到Y)
O---O---O---O O
/ \ / \ / \
O---O---X O Y---O---O
\ /
O---O---O---O
/ \ \
O---O O
Run Code Online (Sandbox Code Playgroud)
解决方案A:(X和Y之间没有循环)
O---O---O---O O
/ / \ / \
O---O---X O Y---O---O
/
O---O---O---O
/ \ \
O---O O
Run Code Online (Sandbox Code Playgroud)
解决方案 B:(X 和 Y 之间没有旁路)
O---O---O---O O
/ \ / \
O---O---X O Y---O---O
/
O---O---O---O …Run Code Online (Sandbox Code Playgroud) 我已经尝试了几个集合的这个练习,例如 {2, 3, 5}, {5, 11} 其中元素的异或不为 0。我的直觉表明它总是非零,但我无法证明它。我在网上搜索,但没有找到任何东西。任何帮助将不胜感激。
stringto 的映射int工作正常。
std::map<std::string, int> // working
Run Code Online (Sandbox Code Playgroud)
但我想将C-style字符串映射到int
例如:
char A[10] = "apple";
map<char*,int> mapp;
mapp[A] = 10;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问映射到“apple”的值时,我得到的是一个垃圾值而不是 10。为什么它的行为与std::string?