假设我有一个数组N \xe2\x86\x90 0 0 0 1 1 1 0 0 1,我如何应用扫描\\来实现数组0 0 0 1 2 3 0 0 1?
+\\N给了我0 0 0 1 2 3 3 3 4这不是我想要的。
+\\\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8N给我| 1 2 3 | 1 |哪个更接近,但随后我失去了位置。
有没有办法在扫描和乘法中携带原始值,或者也许有更好的方法?
\n这里有几个选项。使用 \\ 可以轻松调整您最初的想法。
\n或者,对于一个简短的(但效率低下的 O(n^2))解决方案,\xe2\x8a\xa5\xe2\x8d\xa8\xc2\xa8,\\可行。
为了更有效但更长的解决方案,我改编了https://aplcart.info/?q=cumulative%20sum#
\n可能还有更好的东西,但我太糟糕了,找不到它,但它留给读者作为练习;)
f \xe2\x86\x90 {\xe2\x8d\xb5\\\xe2\x88\x8a+\\\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8\xe2\x8d\xb5}\n g \xe2\x86\x90 \xe2\x8a\xa5\xe2\x8d\xa8\xc2\xa8,\\\n h \xe2\x86\x90 {+\\\xe2\x8d\xb5-a\\\xc2\xaf2-/0,(a\xe2\x86\x901,2\xe2\x89\xa0/\xe2\x8d\xb5)/+\\\xc2\xaf1\xe2\x86\x930,\xe2\x8d\xb5}\n f 0 0 0 1 1 1 0 0 1\n0 0 0 1 2 3 0 0 1\n\n r \xe2\x86\x90 ? 1e3 \xe2\x8d\xb4 2 \xe2\x8d\x9d random boolean array\n (\xe2\x88\xa7/2\xe2\x89\xa1/f,\xe2\x8d\xa5\xe2\x8a\x86g,\xe2\x8d\xa5\xe2\x8a\x86h)r \xe2\x8d\x9d they\'re all the same\n1\n \n ]runtime -c \'f r\' \'g r\' \'h r\'\n \n f r \xe2\x86\x92 3.6E\xc2\xaf5 | 0% \xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95 \n g r \xe2\x86\x92 7.7E\xc2\xaf5 | +111% \xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95 \n h r \xe2\x86\x92 7.3E\xc2\xaf6 | -80% \xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95 \nRun Code Online (Sandbox Code Playgroud)\n
怎么样m\xe2\x86\x90{s-\xe2\x8c\x88\\(s\xe2\x86\x90+\\\xe2\x8d\xb5)\xc3\x972>/0,\xe2\x8d\xb5},看起来快两倍?
cmpx 'h r' 'm r'\n h r \xe2\x86\x92 1.1E\xc2\xaf5 | 0% \xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\n m r \xe2\x86\x92 4.2E\xc2\xaf6 | -63% \xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95\xe2\x8e\x95 \nRun Code Online (Sandbox Code Playgroud)\n