其實我一開始就看了討論區的解答,但還是看不出來為什麼可以這樣解,印出所有資料後豁然開朗,所以紀錄一下~
https://leetcode.com/problems/reverse-linked-list/
這裡有我的心得、筆記、分享 純分享若內容有誤請見諒,請多方查證
其實我一開始就看了討論區的解答,但還是看不出來為什麼可以這樣解,印出所有資料後豁然開朗,所以紀錄一下~
https://leetcode.com/problems/reverse-linked-list/
如果遇到disk full導致vernemq 開不起來
#include <Windows.h> | |
#include <stdlib.h> | |
#include <tchar.h> | |
// remember: Put in WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) | |
... | |
// Is this the original EXE ther Clone? | |
// The original EXE receives one argument, | |
// the clone more. | |
if (__argc == 1) { | |
// Original EXE: Start the Clone. | |
// Copy EXE to the temporary directory | |
TCHAR szPathOrig[_MAX_PATH], szPathClone[_MAX_PATH]; | |
GetModuleFileName(NULL, szPathOrig, _MAX_PATH); | |
/*_MAX_PATH*/ | |
GetTempPath(_MAX_PATH, szPathClone); | |
GetTempFileName(szPathClone, __TEXT("Del"), 0, szPathClone); | |
CopyFile(szPathOrig, szPathClone, FALSE); | |
// Open the Clone using FILE_FLAG_DELETE_ON_CLOSE | |
HANDLE hfile = CreateFile(szPathClone, 0, FILE_SHARE_READ, | |
NULL,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE,0); | |
// Start the Clone. Pass the PID and the fully qualified path | |
// of the original file | |
TCHAR szCmdLine[512]; | |
HANDLE hProcessOrig = OpenProcess(SYNCHRONIZE, TRUE, | |
GetCurrentProcessId()); | |
wsprintf(szCmdLine, __TEXT("%s %d \"%s\""), szPathClone, | |
hProcessOrig, szPathOrig); | |
STARTUPINFO si; | |
ZeroMemory(&si, sizeof(si)); | |
si.cb = sizeof(si); | |
PROCESS_INFORMATION pi; | |
CreateProcess(NULL, szCmdLine, NULL, NULL, TRUE, 0, | |
NULL, NULL, &si, &pi); | |
CloseHandle(hProcessOrig); | |
CloseHandle(hfile); | |
return(0); | |
// now the original process may terminate | |
} else { | |
// Clone-EXE: Delete the original EXE after termination | |
HANDLE hProcessOrig = (HANDLE) atoi(__targv[1]); | |
WaitForSingleObject(hProcessOrig, INFINITE); | |
CloseHandle(hProcessOrig); | |
DeleteFile(__targv[2]); | |
} | |
... |
FILE *fp; | |
FILE *fp1; | |
char buf[MAX_PATH]; | |
char filepath[MAX_PATH]; | |
fp = fopen("c:\\a.bat", "w"); | |
if(fp == NULL) | |
{ | |
return ; | |
} | |
String Current_Dir,Target_Dir; | |
Current_Dir = GetCurrentDir(); | |
sprintf(buf,"%s",Current_Dir); | |
sprintf(filepath, "\"%s\"", buf); | |
//fprintf(fp, "taskkill /f /im %s\n",__argv[0]);//full path | |
fprintf(fp, "taskkill /f /im Project_clone.exe\n"); | |
fprintf(fp, "@ping 127.0.0.1 -n 3 -w 3000 > nul\n"); | |
fprintf(fp, ":while1\n"); | |
fprintf(fp, "rd %s /q /s \n", filepath); | |
//fprintf(fp, "if EXIST %s goto while1 \n", filepath); | |
fprintf(fp, "del \"c:\\a.bat\"\n"); | |
fclose(fp); |
String s,sh; | |
sh=FormatDateTime("hh:mm", Now()+0.001);//+1 minute | |
s.sprintf("AT %s C:\\a.bat",sh); | |
Label1->Caption=s; | |
WinExec(s.c_str(),SW_HIDE); |
//wrong code | |
//want to solve it in mySQL command... | |
UPDATE [table] | |
SET [column]='100' | |
WHERE gName='00102003' | |
AND EXISTS(SELECT [column] | |
FROM [table] | |
WHERE gName='00102003' | |
) | |
Limit 1 |
//correct code | |
//in BCB side, make sure query is correct | |
SQL = "SELECT [column] From [table] Limit 1"; | |
mysql_query(mysql_main,SQL.c_str()); | |
res = mysql_store_result(mysql_main); | |
if(res!=NULL) //<----only check first step of query is ok | |
if((row = mysql_fetch_row(res)) != NULL) | |
{ | |
.... | |
} |
WHERE EXISTS ( subquery );
SELECT * FROM customers WHERE EXISTS (SELECT * FROM order_details WHERE customers.customer_id = orders.customer_id);
SELECT * FROM customers WHERE NOT EXISTS (SELECT * FROM order_details WHERE customers.customer_id = orders.customer_id);
INSERT INTO contacts (contact_id, contact_name) SELECT supplier_id, supplier_name FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id);
UPDATE suppliers SET supplier_name = (SELECT customers.customer_name FROM customers WHERE customers.customer_id = suppliers.supplier_id) WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = suppliers.supplier_id);
DELETE FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id);
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using BinaryTree; | |
using Tree; | |
namespace LcrsTree | |
{ | |
public class LcrsTree | |
{ | |
static public BinaryTree<T> Convert<T>(Tree<T> tree) | |
{ | |
BinaryTree<T> binaryTree = new LinkedBinaryTree<T>(tree.Value); | |
IEnumerator<Tree<T>> enu = tree.Children.GetEnumerator(); | |
if (enu.MoveNext()) | |
{ | |
binaryTree.AddLeft(Convert(enu.Current)); | |
BinaryTree<T> node = binaryTree.Left; | |
while (enu.MoveNext()) | |
{ | |
node.AddRight(Convert(enu.Current)); | |
node = node.Right; | |
} | |
} | |
return binaryTree; | |
} | |
} | |
} |
import java.util.Iterator; | |
public class LcrsTree { | |
static public <T> BinaryTree<T> convert(Tree<T> tree) throws Exception | |
{ | |
BinaryTree<T> binaryTree = new LinkedBinaryTree<T>(tree.getValue()); | |
Iterator<Tree<T>> iterator = tree.children().iterator(); | |
if (iterator.hasNext()) | |
{ | |
binaryTree.addLeft(convert(iterator.next())); | |
BinaryTree<T> node = binaryTree.left(); | |
while (iterator.hasNext()) | |
{ | |
node.addRight(convert(iterator.next())); | |
node = node.right(); | |
} | |
} | |
return binaryTree; | |
} | |
} |
#ifndef LCRSTREE_H | |
#define LCRSTREE_H | |
template<typename T> | |
class LcrsTree | |
{ | |
public: | |
LcrsTree() {} | |
virtual ~LcrsTree() {} | |
static BinaryTree<T>* convert(Tree<T>* tree) | |
{ | |
BinaryTree<T>* binaryTree = new LinkedBinaryTree<T>(tree->getValue()); | |
TreeList<string>* children = tree->children(); | |
children->begin(); | |
if(Tree<T>* child = children->next()) | |
{ | |
binaryTree->addLeft(convert(child)); | |
BinaryTree<T>* node = binaryTree->left(); | |
while (child = children->next()) | |
{ | |
node->addRight(convert(child)); | |
node = node->right(); | |
} | |
} | |
return binaryTree; | |
} | |
protected: | |
private: | |
}; | |
#endif // LCRSTREE_H |
//啟動 | |
bool __fastcall TForm_main::OpenOCR() | |
{ | |
int i,width=320,height=240; | |
bool a = false; | |
if(!hCapWnd) | |
{ // Form_main->Handle //0 | |
hCapWnd = capCreateCaptureWindow("My Capture Window", WS_CHILD | WS_VISIBLE,0, 0, 320, 240 ,PanelOCR->Handle, (int)1 );//建立一個擷取視窗 | |
//以下的For迴圈是為了去連結裝置 | |
for(i=0;i<10;i++) | |
{ | |
a=capDriverConnect(hCapWnd,i); //連接裝置 | |
if(a) break; | |
} | |
//如果沒有啟動成功,則a為false,反之則為true | |
if(!a) | |
{ | |
//ShowMessage("Connect Camera Error!!"); | |
Panel5->Caption="CAM ERR!"; | |
return false; | |
} | |
PanelOCR->Width=width; | |
PanelOCR->Height=height; | |
capOverlay(hCapWnd,true); //開啟覆疊 | |
//capPreviewScale(hCapWnd,true); //開啟比例 | |
capPreviewRate(hCapWnd, 1000/10); //每秒10畫格 | |
capPreview(hCapWnd,true); //開啟預覽 | |
//capPreview(hCapWnd,false); //關閉預覽 | |
//20161114++ | |
CAPDRIVERCAPS *psCaps; | |
psCaps= new CAPDRIVERCAPS; | |
capDriverGetCaps (hCapWnd,psCaps,sizeof(CAPDRIVERCAPS)); | |
capOverlay(hCapWnd,true); | |
delete psCaps; | |
//20161114++ | |
} | |
TimerOCR->Enabled=true; | |
return true; | |
} | |
//--------------------------------------------------------------------------- | |
//關閉 | |
bool __fastcall TForm_main::CloseOCR() | |
{ | |
TimerOCR->Enabled=false; | |
if(hCapWnd) | |
{ | |
capDriverDisconnect(hCapWnd); //停止裝置 | |
hCapWnd=NULL; | |
} | |
return true; | |
} | |
//--------------------------------------------------------------------------- | |
//擷取 | |
void __fastcall TForm_main::GetImageOCR() | |
{ | |
//20161130++ | |
Graphics::TBitmap*Source=new Graphics::TBitmap(); | |
Source->PixelFormat = pf24bit; //2009/1/13 add for iroi important | |
//開始抓取 | |
SendMessage(hCapWnd,WM_CAP_GRAB_FRAME,0,0); | |
capGrabFrameNoStop(hCapWnd); | |
capEditCopy(hCapWnd); | |
try | |
{ | |
//用剪貼簿的方式讀取 | |
if(Clipboard()->HasFormat(CF_BITMAP))Source->LoadFromClipboardFormat(CF_BITMAP,Clipboard()->GetAsHandle(CF_BITMAP),0); | |
//務必要設定大小 因為新的攝影機輸入640*480會當掉 | |
Source->Width=PanelOCR->Width; | |
Source->Height=PanelOCR->Height; | |
//剪裁成適當尺寸 | |
BitBlt(Source->Canvas->Handle, 0, 0, PanelOCR->Width, PanelOCR->Height, Source->Canvas->Handle, 0, 0, SRCCOPY); | |
//存圖測試 | |
AnsiString VFilename = "tmp.bmp"; //for store | |
Source->SaveToFile(VFilename.c_str()); | |
//目標顯示 | |
ImageOCR->Picture->Assign(Source); | |
//再放回已剪裁的圖 | |
Clipboard()->Assign(Source); | |
}catch(Exception &E){WriteLog("ERR"+E.Message);} | |
delete Source; | |
} | |
//--------------------------------------------------------------------------- |
void __fastcall TForm_Learn::SpeedButton1Click(TObject *Sender) | |
{ | |
TCanvas *csBuf=new TCanvas; | |
HDC hDC=GetDC(Form_main->PanelOCR->Handle); | |
csBuf->Handle=hDC; | |
Graphics::TBitmap*Source=new Graphics::TBitmap(); | |
Source->Width=Form_main->PanelOCR->Width; | |
Source->Height=Form_main->PanelOCR->Height; | |
Source->PixelFormat = pf24bit; //2009/1/14 important | |
Source->Canvas->CopyRect(Rect(0, 0, Source->Width, Source->Height),csBuf, Rect(0, 0, Form_main->PanelOCR->Width, Form_main->PanelOCR->Height)); | |
byte* pSrc; | |
byte* pDest; | |
SrcImg->SetSize(320,240); | |
for(int row = 0; row < Source->Height; row++) | |
{ | |
pSrc = (Byte *)Source->ScanLine[row]; | |
pDest = (Byte *)SrcImg->m_pImagePtr + row * Source->Width * 3; | |
CopyMemory(pDest, pSrc, Source->Width * 3); | |
} | |
//for 灰階影像 | |
BWSrc.SetSize(320,240); | |
BWDst.SetSize(320,240); | |
ClrGetComponent(SrcImg,&BWSrc, 1); | |
ReleaseDC(0,hDC); | |
delete csBuf; | |
delete Source; | |
RedrawWindow(Handle, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); | |
} |
__fastcall TForm_bingoup::TForm_B(TComponent* Owner) | |
: TForm(Owner) | |
{ | |
//先取得視窗風格性質 | |
DWORD dwStyle =::GetWindowLong(Handle,GWL_STYLE); | |
//去除視窗的標題列性質 | |
dwStyle &= ~WS_CAPTION; | |
//再將無標題列的風格重設回視窗 | |
::SetWindowLong(Handle,GWL_STYLE,dwStyle); | |
RECT r; | |
//取得指定視窗範圍位置 | |
::GetClientRect(Handle,&r); | |
//創造兩個方形位置與範圍 | |
HRGN hRgn1=::CreateRectRgn(120,7,432,388); | |
HRGN hRgn2=::CreateRectRgn(8,390,553,578); | |
//再結合兩個方形位置與範圍 | |
::CombineRgn(hRgn1,hRgn1,hRgn2,RGN_OR); | |
//設回指定視窗的顯示範圍 | |
::SetWindowRgn(Handle,hRgn1,TRUE); | |
::SetProp(Handle,"region",hRgn1); | |
} |
div#header>div#logo+ul.nav>li.item-$*5>a
<div id="header"> <div id="logo"></div> <ul class="nav"> <li class="item-1"><a href=""></a></li> <li class="item-2"><a href=""></a></li> <li class="item-3"><a href=""></a></li> <li class="item-4"><a href=""></a></li> <li class="item-5"><a href=""></a></li> </ul> </div>
div#header>div#logo+ul.nav>li.item-$*5>a
<div id="header"> <div id="logo"></div> <ul class="nav"> <li class="item-1"><a href=""></a></li> <li class="item-2"><a href=""></a></li> <li class="item-3"><a href=""></a></li> <li class="item-4"><a href=""></a></li> <li class="item-5"><a href=""></a></li> </ul> </div>
p
<p></p>
div#header
<div id="header"></div>
div.region
<div class="region"></div>
div#nav.menu.links.tab
<div id="nav" class="menu links tab"></div>
div#header>h1#logog
<div id="header"> <h1 class="logo"></h1> </div>
div#header>h1#logo>a
<div id="header"> <h1 id="logo"><a href=""></a></h1> </div>
div#header>h1.site_name+p.site_solgan
<div id="header"> <h1 class="site_name"></h1> <p class="site_solgan"></p> </div>
a[title]
<a href="" title=""></a>
a[title="hello zen coding"]
<a href="" title="hello zen coding"></a>
div#nav>ul>li.item*5>a
<div id="nav"> <ul> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> </ul> </div>
ul>li.item-$*3
<ul> <li class="item-1"></li> <li class="item-2"></li> <li class="item-3"></li> </ul>
div#header>(h1.logo>a)+ul.nav>li.item*5>a
<div id="header"> <h1 class="logo"><a href=""></a></h1> <ul class="nav"> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> <li class="item"><a href=""></a></li> </ul> </div>
<div id="header"> <p>Hello Zen Coding</p> </div>
<div id="header"> <div class="limiter"> <p>Hello Zen Coding</p> </div> </div>
list1 list2 list3 list4 list5
<ul class="menu"> <li class="item"><a href="">list1</a></li> <li class="item"><a href="">list2</a></li> <li class="item"><a href="">list3</a></li> <li class="item"><a href="">list4</a></li> <li class="item"><a href="">list5</a></li> </ul>
<div class="test"> hello world </div>