// Comment int longestOnes(int* A, int ASize, int K) { int result = 0; int localmax = 0; int indexOfZero = 0; for(int i = 0; i < ASize; ++i){ if(A[i] == 0) K--; localmax++; while(K<0){ if(A[indexOfZero] == 0){ K++; } indexOfZero++; localmax--; } result = localmax > result ? localmax : result; } return result; }
2019年3月20日 星期三
1004. Max Consecutive Ones III (C)
2019年2月11日 星期一
overload, override, polymorphism
Overload
一個func name可以take不同的input parameter
C比較難做到
https://stackoverflow.com/a/25026358
Override
C++11提供之修飾字only for existed virtual function
成功修改繼承來的virtual function的時候,加不加override的效果一樣
但修改繼承virtual function失敗時,沒有加override的話會產生一個新的virtual function,有加override會提示error
Polymorphism
class anime
virtual void eat(food f)
class cat : anime
class dog : anime
anime *p1 = new cat()
anime *p2 = new dog()
p1->eat()
p2->eat()
不用知道p1 p2是何種類別,用父類別去指定即可
一個func name可以take不同的input parameter
C比較難做到
https://stackoverflow.com/a/25026358
Override
C++11提供之修飾字only for existed virtual function
成功修改繼承來的virtual function的時候,加不加override的效果一樣
但修改繼承virtual function失敗時,沒有加override的話會產生一個新的virtual function,有加override會提示error
Polymorphism
class anime
virtual void eat(food f)
class cat : anime
class dog : anime
anime *p1 = new cat()
anime *p2 = new dog()
p1->eat()
p2->eat()
不用知道p1 p2是何種類別,用父類別去指定即可
2019年1月29日 星期二
memory rank bank
一個bank是棋盤狀儲存空間由row, column代表兩維度
一個chip有多個bank
一個rank由多個chip組成64bit or 72bit(ECC) 在64bit系統上
一條ram可以有多個rank
https://www.techbang.com/posts/18381-from-the-channel-to-address-computer-main-memory-structures-to-understand
一個chip有多個bank
一個rank由多個chip組成64bit or 72bit(ECC) 在64bit系統上
一條ram可以有多個rank
https://www.techbang.com/posts/18381-from-the-channel-to-address-computer-main-memory-structures-to-understand
2018年9月23日 星期日
汽車變速箱小結
手動排檔
MT手排:簡單、可靠、頓挫感重、自行控管離合
自動排檔
AMT自動的手排:同MT,現少見,多為低端車使用
AT自排:檔位少則頓挫耗油、檔位多則複雜度大幅提升,保養修繕費用可觀
DSG/DCT雙離合:理念不錯,然而乾式多問題
CVT無段變速:大腳煞車、油門較傷變速箱,適合平順行駛
2018年7月3日 星期二
JNI at Anfroid Studio
要裝jdk
在android studio建立project,建立時include C++ support
宣告一個function
產生header檔 ( or https://www.google.com.tw/search?q=c+header+in+android+studio)
在android studio建立project,建立時include C++ support
宣告一個function
public native String hihi();
JNIEXPORT jstring JNICALL Java_com_example_ycsheu_myapplication_MainActivity_hihi (JNIEnv *, jobject);
實作之
2018年6月10日 星期日
RSA
public key 有 n, e
private key 有 p, q
d = e^-1(mod f(n))
破解流程:n已知,已知n = pq,因數分解得p, q,而後可得d。困難點在於難以因數分解p, q
Ref
http://m0x39.blogspot.com/2012/12/0x00-introduction-this-post-is-going-to.html
英文流程,cracking 768bits RSA
http://slides.com/zal/151220#/4
中文slides
http://jianiau.blogspot.com/2015/07/openssl-generating-rsa-key.html
中文openssl操作rsa
private key 有 p, q
d = e^-1(mod f(n))
破解流程:n已知,已知n = pq,因數分解得p, q,而後可得d。困難點在於難以因數分解p, q
Ref
http://m0x39.blogspot.com/2012/12/0x00-introduction-this-post-is-going-to.html
英文流程,cracking 768bits RSA
http://slides.com/zal/151220#/4
中文slides
http://jianiau.blogspot.com/2015/07/openssl-generating-rsa-key.html
中文openssl操作rsa
2018年5月1日 星期二
Some c++ usage
virtual function
class A{
void foo(){ puts("foo_A"); }
}
class B : A{
void foo() { puts("foo_B"); }
}
B b;
A *p;
p = &b;
p.foo();
expected result : foo_A
class A{expected result : foo_B
virtual void foo(){ puts("foo_A"); }
}
class B : A{
virtual void foo() override{ puts("foo_B"); }
}
B b;
A *p;
p = &b;
p.foo();
reference
virtual function - abstract class
class C{
virtual void haha() = 0;
}
C c; // error, abstract class can't create instance
class D : C{
virtual void haha() override{ puts("foo_B"); }
}
reference
const after function
void foo() const
means : foo函式不能修改class內的data member
reference
訂閱:
文章 (Atom)