谷歌最近在这里宣布了一种新的用户登录方式。
\nhttps://developers.google.com/identity/gsi/web?hl=en
\n在本教程中,按钮是通过添加 HTML 代码或 JavaScript 创建的。
\n看起来像
\n\n但由于按钮都是在新的 Iframe 中创建和渲染的,因此我可以\xe2\x80\x99t 根据需要自定义按钮样式。
\n有什么方法可以改变以前提供的按钮样式吗?
\n以前,我用过
\nwindow.gapi.load(\'auth2\', () => {\n const auth2 = window.gapi.auth2.init(options);\n auth2.attachClickHandler(\n idButtonRef.current,\n {},\n onSuccessCallback,\n onFailCallback,\n );\n });\nRun Code Online (Sandbox Code Playgroud)\nidButtonRef.current是按钮,我所需要的只是附加按钮和事件监听器,如上面的代码所示。所以我能够创建我想要的按钮样式。
有没有办法通过谷歌用户签名的新方式来做到这一点?
\n在经历了长期困难的编码挑战之后,有一个问题困扰着我。我思考了足够的时间,但找不到解决的方法。在这里,我在下面提供一个问题和示例。
v是一个数组,q是一个根据其嵌套元素执行不同操作的命令。
如果嵌套数组的第一个元素1=> 嵌套数组的第二个和第三个元素成为索引并返回sum[second:third+1](如您所见,它是包含的)
如果嵌套数组的第一个元素是2=>第二个索引的元素成为第三个。与...一样v[second] = third
通过提供的示例,它就像
[1,2,4]=> 第一个元素是1。v[2]它应该返回从到(含)=> 12的总和v[4]。[2,3,8]=> 第一个元素是2。它切换v[3]到8。(现在 v 是[1,2,3,8,5])[1,2,4]=> 第一个元素是1。它应该返回总和从v[2]to v[4](含)=> 16,因为第三个索引已从上一个命令更改。所以最终答案是[12, 16]
下面的代码是我解决的方法,但是,这是 O(n**2) 复杂度。我想知道在这种情况下如何降低时间复杂度。
我尝试创建一个哈希对象,但没有成功。在这种情况下我想不出一个好的方法来制作缓存。
function …Run Code Online (Sandbox Code Playgroud)