试图重现Heap的算法,用于生成整数数组的所有可能的排列,但我无法解决其他整数而不是三个.来自维基百科的Heap算法:
procedure generate(N : integer, data : array of any):
if N = 1 then
output(data)
else
for c := 1; c <= N; c += 1 do
generate(N - 1, data)
swap(data[if N is odd then 1 else c], data[N])
Run Code Online (Sandbox Code Playgroud)
我的代码:
public static void perm(int[] list, int n){
if(n==1){
System.out.println(Arrays.toString(list));
} else {
for(int c=1;c<=n;c++){ /for(int c=0;c<n;c++)
perm(list,n-1);
if(n%2==0){
int temp1=list[c]; //This is line 17
list[c]=list[list.length-1];
list[list.length-1]=temp1;
}else{
int temp2=list[0];
list[0]=list[list.length-1];
list[list.length-1]=temp2;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么,误解了什么?为什么它只能用[1,2,3](n = 3)作为输入,n …
我知道,之前有人问过这方面的问题,但我找不到解决办法.我试图通过所谓的简单易用的python-linkedin库访问我的LinkedIn帐户,但不能这样做.根据Ozgur的页面https://github.com/ozgur/python-linkedin我应该能够打开.authorization_url函数生成的链接,但这不起作用,因为我收到错误说我的重定向链接甚至是错误的虽然我已经在LinkedIn的开发者页面的应用程序中输入了它.即,当试图打开.authorization_url函数给出的链接时,浏览器中显示的内容是以下错误消息:
"无效的redirect_uri.此值必须与使用API密钥注册的URL匹配."
我期待的是一个页面,我可以批准访问我的帐户.我可以在下面的代码中将localhost:8000(如Ozgur的页面所示)作为重定向链接或它必须是什么类型的链接?它可以是什么?
from linkedin import linkedin
import webbrowser
API_KEY = '********'
API_SECRET = '*******'
RETURN_URL = 'http://localhost:8000'
authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL, linkedin.PERMISSIONS.enums.values())
print (authentication.authorization_url) # open this url on your browser
webbrowser.open(authentication.authorization_url)
application = linkedin.LinkedInApplication(authentication)
authentication.authorization_code = '4CqONljAz622ZBo0'
authentication.get_access_token()
Run Code Online (Sandbox Code Playgroud)
具体如何做到这一点?
还有一个问题,上面提到的是使用Oauth2,但仍然可以根据开发者页面使用Oauth1,但尚未弃用.但是,对于使用Oauth1,需要四个不同的密钥,主要指的是:
CONSUMER_KEY,CONSUMER_SECRET,USER_TOKEN,USER_SECRET
但是从应用程序页面(即LinkedIn,其中一个注册应用程序)我只能找到两个:ClientID和Client_SECRET,它们用于Oauth2.这是否意味着无论如何都不可能使用oauth1?